Imersão Aprenda Golang

Fala, fala Gopher! Beleza?

O objetivo dessa imersão é ensinar, de maneira prática, como desenvolver projetos escaláveis e prontos para produção, utilizando as melhores práticas de mercado.

Ao final, você terá três projetos completos em seu portfólio (uma API, um Worker e um CLI) com testes unitários, fuzzy teste e CI configurado com GitHub Actions prontos para serem apresentados para recrutadores.

Sobre a imersão

O programa completo tem duração de aproximadamente 3 meses e meio. Você terá acesso à:

  • Mais de 300 vídeos com aulas teóricas e práticas;
  • Grupo de estudos no Discord;
  • Tirar dúvidas direto com professor, via Discord;
  • 1:1 com o professor ao final do curso.

Módulos

cropped-gopher-education-1.png

GO 101

No início, você irá aprender tudo sobre a linguagem Go, Orientação a Objetos e Arquitetura de Software.

  • Aula 1 – O que são variáveis
  • Aula 2 – Tipos de dados (parte 01)
  • Aula 3 – Tipos de dados (parte 02)
  • Aula 4 – Trabalhando com variáveis em Go
  • Aula 5 – Trabalhando com variáveis em Go
  • Aula 6 – A diferença entre arrays e slices
  • Aula 7 – O que são ponteiros
  • Aula 8- A função new
  • Aula 9 – Escopo das variáveis
  • Aula 1 – O que são comandos condicionais
  • Aula 2 – Comando if/else em Go
  • Aula 3 – O comando switch/case
  • Aula 4 – Validando múltiplas condições
  • Aula 1 – O que é looping
  • Aula 2 – Como fazer looping em Go
  • Aula 3 – Formas de iterar um slice em Go
  • Aula 4 – Iterando um map
  • Aula 1 – O que são funções e qual sua finalidade
  • Aula 2 – Criando a primeira função
  • Aula 3 – Passando parâmetros para função
  • Aula 4 – A diferença entre valor e ponteiro
  • Aula 5 – Retornando o resultado da função
  • Aula 6 – Funções com múltiplos retornos
  • Aula 7 – Retornando erros customizados
  • Aula 8 – Como adiar a execução de uma função
  • Aula 1 – O que são packages
  • Aula 2 – Visibilidade das funções, structs e variáveis
  • Aula 3 – Criando um package
  • Aula 4 – Utilizando funções de um package
  • Aula 1 – O que é orientação a objetos
  • Aula 2 – O que são classes
  • Aula 3 – A diferença entre classe, objeto e instância
  • Aula 4 – Entendendo métodos
  • Aula 5 – Como funciona herança
  • Aula 6 – Os tipos de visibilidade
  • Aula 7 – Encapsulamento de um objeto
  • Aula 8 – O que é polimorfismo
  • Aula 9 – Para que servem as Interfaces
  • Aula 10 – OO aplicado ao Golang
  • Aula 11 – Criando a primeira “classe”
  • Aula 12 – Extendendo uma classe
  • Aula 13 – Trabalhando com interfaces
  • Aula 1 – O que é arquitetura de software
  • Aula 2 – Client-Server
  • Aula 3 – REpresentational State Transfer (REST)
  • Aula 4 – Domain Driven Design (DDD)
  • Aula 5 – Microservices
  • Aula 6 – Component-based
  • Aula 7 – Layered
  • Aula 8 – Publish-subscribe

Trabalhando com variáveis em Go

Entendendo métodos

Postgresql

Banco de dados

Vamos ensinar tudo sobre banco de dados relacionais e suas diferenças com NoSQL.

  • Aula 1 – Introdução a banco de dados
  • Aula 2 – Componentes de um banco relacional
  • Aula 3 – Diferença entre relacional e NoSQL
  • Aula 4 – O que são chaves
  • Aula 5 – Quais são os tipos de relacionamentos
  • Aula 6 – A linguagem SQL
  • Aula 7 – Criando o primeiro banco de dados
  • Aula 8 – Criando tabelas
  • Aula 9 – Criando uma tabela relacional
  • Aula 10 – Gerenciando dados em uma tabela
  • Aula 11 – Como filtrar dados de uma tabela
  • Aula 12 – Importando dados de um arquivo .sql
  • Aula 13 – Conhecendo os tipos de JOIN
  • Aula 14 – Selecionando dados em tabelas relacionais

O que são chaves

gophers

Projeto prático

Iremos planejar, implementar e debugar uma API, CLI e um worker. Utilizando as melhores práticas de mercado.

  • Aula 1 – Como planejar um projeto de software
  • Aula 2 – Escolhendo as tecnologias
  • Aula 3 – Desenhando a arquitetura do software
  • Aula 4 – Desenhando o banco de dados
  • Aula 5 – Criando scripts do banco de dados
  • Aula 6 – Criando o repositório no GitHub
  • Aula 7 – Preparando o ambiente de desenvolvimento
  • Aula 8 – Aplicando os scripts do banco de dados
  • Aula 1 – O que são Workers
  • Aula 2 – O que são sistemas de fila
  • Aula 3 – Definindo responsabilidade da aplicação
  • Aula 4 – Planejando os packages da aplicação
  • Aula 5 – Definindo estrutura da mensagem
  • Aula 6 – Implementando Queue
  • Aula 7 – Criando struct base do RabbitMQ
  • Aula 8 – Implementando métodos para RabbitMQ
  • Aula 9 – Data Transfer Object (DTO)
  • Aula 10 – Desenvolvendo struct do Bucket
  • Aula 11 – Criando struct para AWS S3
  • Aula 12 – Fazendo download do arquivo
  • Aula 13 – Fazendo upload do arquivo
  • Aula 14 – Removendo arquivo do bucket
  • Aula 15 – Implementando o worker
  • Aula 1 – O que é uma API?
  • Aula 2 – Planejando organização dos packages
  • Aula 3 – Implementando package database
  • Aula 4 – Definindo struct User
  • Aula 5 – Implementando método SetPassword
  • Aula 6 – Implementando método Validate
  • Aula 7 – Definindo Handler
  • Aula 8 – Implementando Insert User
  • Aula 9 – Implementando Handler Create
  • Aula 10 – Atualizando usuário no banco de dados
  • Aula 11 – Endpoint Delete
  • Aula 12 – Recuperando um único usuário
  • Aula 13 – Listando usuários
  • Aula 14 – Definindo struct Folder
  • Aula 15 – Definindo Handler
  • Aula 16 – Implementando criação de pastas
  • Aula 17 – Atualizando nome da pasta
  • Aula 18 – Definindo struct File
  • Aula 19 – Listando os arquivos
  • Aula 20 – Atualizando o arquivo
  • Aula 21 – Endpoint Delete
  • Aula 22 – Obtendo uma pasta
  • Aula 23 – Listando conteúdo de uma pasta
  • Aula 24 – Finalizando Get e Delete
  • Aula 25 – Obtendo pasta raiz
  • Aula 26 – Atualizando nome do arquivo
  • Aula 27 – Novo arquivo
  • Aula 28 – Upload de arquivo
  • Aula 29 – Removendo um arquivo
  • Aula 30 – Testando Insert
  • Aula 31 – Testando Delete
  • Aula 32 – Testando Get
  • Aula 33 – Testando List
  • Aula 34 – Testando Update
  • Aula 35 – Testando Create Folder
  • Aula 36 – Testando Get Folder
  • Aula 37 – Testando List Folders
  • Aula 38 – Refatorando Files
  • Aula 39 – Testando POST
  • Aula 40 – Testando PUT
  • Aula 41 – Testando GET
  • Aula 42 – Testando DELETE
  • Aula 43 – Review do desafio
  • Aula 44 – Testando Upload
  • Aula 45 – Implementando buckettest
  • Aula 46 – Implementando queuetest
  • Aula 47 – Executando teste upload
  • Aula 48 – Adicionando Testify Suite
  • Aula 49 – Review do desafi
  • Aula 50 – O que é coverage?
  • Aula 51 – Adicionando teste case no TestDeleteHTTP
  • Aula 52 – Review do desafio
  • Aula 53 – Sistema de autenticação
  • Aula 54 – Package auth
  • Aula 55 – Implementando criação do token
  • Aula 56 – Autenticando o User
  • Aula 57 – Protegendo endpoints
  • Aula 58 – Resolução do desafio
  • Aula 59 – Implementando entrada da aplicação
  • Aula 1 – Planejando organização dos packages
  • Aula 2 – Criando package de comunicação
  • Aula 3 – Comando para autenticação
  • Aula 4 – Implementando autenticação
  • Aula 5 – Lendo cache do token
  • Aula 6 – Comando para criação de pasta
  • Aula 7 – Listando conteúdo de uma pasta
  • Aula 8 – Atualizando os dados de uma pasta
  • Aula 9 – Removendo uma pasta
  • Aula 10 – Revisão do desafio
  • Aula 11 – Implementando main.go
  • Aula 1 – Build das aplicações
  • Aula 2 – Configurando ambiente
  • Aula 3 – Criando usuário
  • Aula 4 – Autenticação e package users
  • Aula 5 – Package folders
  • Aula 6 – Upload de arquivo raw
  • Aula 7 – Executando o Worker
  • Aula 8 – Listagem da pasta e package Files

Desenhando a arquitetura do software

Upload de arquivo

Containers e Kubernetes

Agora que temos uma aplicação pronta, chegou a hora de aprender como colocá-la em produção.

Você irá aprender o que são containers, como o kubernetes funciona, e como subir sua aplicação no kubernetes.

  • Aula 1 – Containers, como chegamos até aqui
  • Aula 2 – O que são containers
  • Aula 3 – Instalando sistema de containers
  • Aula 4 – Executando um container
  • Aula 5 – Criando um container
  • Aula 6 – Multi step build
  • Aula 7 – Implementando um container em Go
  • Aula 8 – Comandos úteis
  • Aula 9 – Docker compose
  • Aula 10 – Conclusão

Conteúdo planejado:

  • Aula 1 – O que é Kubernetes
  • Aula 2 – Arquitetura de um cluster Kubernetes
  • Aula 3 – Os vários tipos de objetos Kubernetes
  • Aula 4 – Como os objetos “conversam” entre si
  • Aula 5 – Criando primeiro manifesto
  • Aula 6 – Adicionando ConfigMap
  • Aula 7 – Criando Secrets
  • Aula 8 – Configurando Deployment para API
  • Aula 9 – Adicionando Service para API
  • Aula 10 – Configurando Deployment para Worker
  • Aula 11 – O que é HELM?
  • Aula 12 – Criando um template de HELM
  • Aula 13 – Convertendo os manifestos para HELM Chart
  • Aula 14 – Adicionando um Ingress

Criando um container

Arquitetura de um cluster Kubernetes

Fontend com Angular

Para fechar com chave de ouro, nesse módulo vamos aprender tudo sobre o framework Angular.

Também vamos planejar e implementar uma interface para a aplicação que criamos durante o módulo do projeto prático.

  • Aula 1 – O que Angular
  • Aula 2 – Estrutura de um projeto Angular
  • Aula 3 – O que são componentes
  • Aula 4 – O que são serviços
  • Aula 5 – O que são diretivas
  • Aula 6 – O que são módulos
  • Aula 7 – O que é lazy loading
  • Aula 8 – Forms vs Reactive Forms
  • Aula 1 – Iniciando projeto e adicionando dependências
  • Aula 2 – Criando o primeiro módulo
  • Aula 3 – Configurando os environments
  • Aula 4 – Criando component UserCreate
  • Aula 5 – Criando tela para cadastro
  • Aula 6 – Dependências e rotas
  • Aula 7 – Criando primeiro user
  • Aula 8 – Implementando rota para login
  • Aula 9 – Adicionando módulo Resources
  • Aula 10 – Implementando Service Resources
  • Aula 11 – Implementando ResourcesListComponent
  • Aula 12 – Listando os recursos no component
  • Aula 13 – Implementando um Interceptor
  • Aula 14 – Implementando um Guard
  • Aula 15 – Listando os recursos
  • Aula 16 – Adicionando link para outras pastas
  • Aula 17 – O componente “nova pasta”
  • Aula 18 – Criando uma nova pasta
  • Aula 19 – O componente “upload”
  • Aula 20 – Implementando o Service Upload
  • Aula 21 – Deletando resources
  • Aula 22 – Instalando Angular Material 
  • Aula 23 – Ajustando as tabelas e ações
  • Aula 24 – Adicionando sidenav e toolbar
  • Aula 25 – Movendo botões para Sidenav
  • Aula 26 – Adicionando dialog ao componente New Folder
  • Aula 27 – Implementando comunicação entre dialog e componente

Forms vs Reactive Forms

Ajustando as tabelas e ações

Terraform

Muito além da documentação, nesse módulo você aprenderá como configurar, gerenciar recursos e módulos utilizando Terraform. 

  • Aula 1 – O que é Terraform?
  • Aula 2 – Estrutura de um arquivo .tf
  • Aula 3 – O arquivo provider
  • Aula 4 – Criando um bucket na AWS
  • Aula 5 – Autenticando na AWS
  • Aula 6 – Comandos Terraform
  • Aula 7 – Module Bucket
  • Aula 8 – Arquivo .tfstate
  • Aula 9 – Otimizando autenticação
  • Aula 10 – Migrando .tfstate para o Cloud
  • Aula 11 – Importando recursos
  • Aula 12 – Lendo arquivos YAML
  • Aula 13 – Criando módulo EC2

Criando um bucket na AWS

Domain-Driven Design

Nesse módulo você aprenderá todos os conceitos do Domain-Driven Design, também conhecido como DDD.

Depois vamos ver como aplicá-los no Go. Por fim, vamos refatorar nosso projeto prático utilizando DDD.

  • Aula 1 – O que é DDD?
  • Aula 2 – Modelo e linguagem onipresente
  • Aula 3 – Domínio e subdomínio
  • Aula 4 – Camadas de software
  • Aula 5 – Entidades e Objetos de Valor
  • Aula 6 – Agregados
  • Aula 7 – Serviços e Módulos
  • Aula 8 – Fábricas e Repositórios

Conteúdo em gravação.

Entidades e Objetos de Valor

🧪 Em Desenvolvimento 🥽

gRPC

Pra começar, você irá aprender o que é e como funciona o Remote Procedure Call (RPC). 

Logo após entender o protocolo por debaixo do gRPC, vamos implementar esse framework em uma aplicação.

Empresas

Abaixo você pode conferir a lista com algumas empresas onde alunos da imersão trabalham.

Acesso às aulas

Como a gravação das aulas está em andamento, os alunos que comprarem AGORA o curso, ganharão acesso VITALÍCIO aos conteúdos.

Isso mesmo, o acesso ao conteúdo do curso é VITALÍCIO!!!

Qual o valor do investimento?

de R$ 2.627,80

por apenas 10x de

R$ 99,00

ou R$ 990,00 à vista

💰 Garantias

ACESSO VITALÍCIO

Você terá acesso a todos os módulos da imersão pelo resto da sua vida.

RISCO ZERO!

Por qualquer motivo, se você se arrepender de ter comprado o curso, até 7 dias após sua compra, devolvemos 100% do seu dinheiro.