Imersão Backend Go
Transforme sua carreira com nossa imersão focada exclusivamente em tecnologias backend. Nosso curso é projetado para ensinar, de maneira prática e eficaz, como desenvolver projetos escaláveis e prontos para produção, utilizando as melhores práticas do mercado.
Objetivos do Curso:
– Desenvolvimento de Projetos Escaláveis: Aprenda a criar soluções robustas e eficientes, prontas para atender às demandas reais do mercado.
– Portfólio Completo: Ao final do curso, você terá três projetos completos (uma API, um Worker e um CLI) com testes unitários e fuzzy testing, prontos para serem apresentados a recrutadores.
Duração e Estrutura:
O programa tem uma duração aproximada de 2 meses e inclui:
– Mais de 200 Vídeos: Aulas teóricas e práticas que cobrem todos os aspectos essenciais de Golang, DDD e gRPC.
– Grupo de Estudos no Discord: Participe de uma comunidade ativa de estudantes e profissionais, facilitando o aprendizado colaborativo.
– Suporte Direto com Professores: Tire suas dúvidas diretamente com os instrutores via Discord, garantindo um aprendizado contínuo e sem interrupções.
Benefícios Adicionais:
– Metodologia Prática e Aplicada: Nosso enfoque é em aprender fazendo, com projetos reais que proporcionam experiência prática.
– Networking: Conecte-se com outros profissionais da área e aumente suas oportunidades de carreira.
Garanta seu lugar e dê o próximo passo rumo à excelência profissional em desenvolvimento backend.
Conteúdo do curso
Apresentação
-
Boas vindas
02:13 -
Divisão dos conteúdos e calendário
04:00 -
Dicas para estudar
01:26
[Golang] – Variáveis
-
04:16
-
Tipos de dados (parte 01)
08:20 -
Tipos de dados (parte 02)
06:25 -
07:19
-
Trabalhando com variáveis em Go (parte 02)
04:46 -
A diferença entre arrays e slices
12:21 -
O que são ponteiros
04:01 -
A função new
02:24 -
Escopo das variáveis
08:17
[Golang] – Comandos condicionais
-
O que são comandos condicionais
04:58 -
Comando if/else em Go
05:51 -
O comando switch/case
02:41 -
Validando múltiplas condições
05:37
[Golang] – Looping e iterações
-
O que é looping
03:41 -
Como fazer looping em Go
08:37 -
Formas de iterar um slice em Go
04:20 -
Iterando um map
04:42
[Golang] – Funções
-
O que são funções e qual sua finalidade
04:52 -
Criando a primeira função
02:40 -
Passando parâmetros para função
04:06 -
A diferença entre valor e ponteiro
08:10 -
Retornando o resultado da função
02:32 -
Funções com múltiplos retornos
08:52 -
Retornando erros customizados
02:49 -
Como adiar a execução de uma função
07:03
[Golang] – Packages
-
O que são packages
05:35 -
Visibilidade das funções, structs e variáveis
03:57 -
Criando um package
05:27 -
Utilizando funções de um package
10:31
[Golang] – Orientação a objetos
-
O que é orientação a objetos
03:34 -
O que são classes
05:24 -
A diferença entre classe, objeto e instância
03:06 -
04:18
-
Como funciona herança
05:34 -
Os tipos de visibilidade
05:56 -
Encapsulamento de um objeto
04:53 -
O que é polimorfismo
02:37 -
Para que servem as Interfaces
06:45 -
OO aplicado ao Golang
04:36 -
Criando a primeira “classe”
08:25 -
Extendendo uma classe
06:27 -
Trabalhando com interfaces
10:26
Banco de dados
-
Introdução a banco de dados
01:35 -
Componentes de um banco relacional
07:11 -
Diferença entre relacional e NoSQL
06:31 -
06:41
-
Quais são os tipos de relacionamentos
06:51 -
A linguagem SQL
07:13 -
Criando o primeiro banco de dados
06:59 -
Criando tabelas
03:59 -
Criando uma tabela relacional
06:20 -
Gerenciando dados em uma tabela
09:17 -
Como filtrar dados de uma tabela
08:36 -
Importando dados de um arquivo .sql
04:28 -
Conhecendo os tipos de JOIN
05:36 -
Selecionando dados em tabelas relacionais
05:41
[Projeto Prático] – Planejando um projeto
-
05:32
-
Escolhendo as tecnologias
04:56 -
Desenhando a arquitetura do software
06:19 -
Desenhando o banco de dados
07:44 -
Criando scripts do banco de dados
11:10 -
Criando o repositório no GitHub
05:58 -
Preparando o ambiente de desenvolvimento
04:08 -
Aplicando os scripts do banco de dados
04:50
[Projeto Prático] – Micro Serviço (worker)
-
O que são Workers
02:37 -
O que são sistemas de fila
05:58 -
Definindo responsabilidade da aplicação
03:56 -
Planejando os packages da aplicação
05:40 -
Definindo estrutura da mensagem
05:57 -
Implementando a struct Queue
10:23 -
Criando struct base do RabbitMQ
06:35 -
Implementando métodos para RabbitMQ
08:23 -
Data Transfer Object (DTO)
10:31 -
Desenvolvendo struct do Bucket
10:53 -
Criando struct para AWS S3
09:55 -
Fazendo download do arquivo
03:01 -
Fazendo upload do arquivo
03:45 -
Removendo arquivo do bucket
04:23 -
Implementando o worker
17:23
[Projeto Prático] – API
-
O que é uma API?
03:47 -
Planejando organização dos packages
04:35 -
Implementando package database
05:36 -
Definindo struct User
09:15 -
Implementando método SetPassword
04:03 -
Implementando método Validate
07:51 -
Definindo Handler
06:01 -
Implementando Insert User
05:08 -
Implementando Handler Create
06:49 -
Atualizando usuário no banco de dados
09:00 -
Endpoint Delete
04:39 -
Recuperando um único usuário
08:05 -
Listando usuários
08:26 -
Definindo struct Folder
04:47 -
Definindo Handler
01:59 -
Implementando criação de pastas
06:52 -
Atualizando nome da pasta
06:35 -
Definindo struct File
05:31 -
Listando os arquivos
03:54 -
Atualizando o arquivo
04:24 -
Endpoint Delete
11:42 -
Obtendo uma pasta
06:04 -
Listando conteúdo de uma pasta
13:03 -
Finalizando Get e Delete
13:15 -
Obtendo pasta raiz
06:44 -
Atualizando nome do arquivo
10:38 -
Novo arquivo
08:19 -
14:28
-
Removendo um arquivo
05:20 -
Testando Insert
11:29 -
Testando Delete
05:26 -
Testando Get
06:12 -
Testando List
04:49 -
Testando Update
04:44 -
Testando Create Folder
05:02 -
Testando Get Folder
04:15 -
Testando List Folders
04:35 -
Refatorando Files
05:28 -
Testando POST
11:37 -
Testando PUT
08:28 -
Testando GET
04:37 -
Testando DELETE
04:19 -
Review do desafio
07:42 -
Testando Upload
14:00 -
Implementando buckettest
08:31 -
Implementando queuetest
07:48 -
Executando teste upload
06:07 -
Adicionando Testify Suite
21:08 -
Review do desafio
12:04 -
O que é coverage?
06:46 -
Adicionando teste case no TestDeleteHTTP
13:07 -
Review do desafio
23:52 -
Sistema de autenticação
11:04 -
Package auth
10:41 -
Implementando criação do token
03:44 -
Autenticando o User
14:45 -
Protegendo endpoints
13:21 -
Resolução do desafio
05:10 -
Implementando entrada da aplicação
13:27
[Projeto Prático] – CLI
-
Planejando organização dos packages
04:19 -
Criando package de comunicação
05:04 -
Comando para autenticação
08:46 -
Implementando autenticação
11:04 -
Lendo cache do token
04:08 -
Comando para criação de pasta
09:32 -
Listando conteúdo de uma pasta
08:46 -
Atualizando os dados de uma pasta
04:33 -
Removendo uma pasta
04:58 -
Revisão do desafio
07:36 -
Implementando main.go
06:25
[Projeto Prático] – Debug das Aplicações
-
Build das aplicações
06:29 -
Configurando ambiente
19:32 -
Criando usuário
18:14 -
Autenticação e package users
10:28 -
Package folders
09:28 -
Upload de arquivo raw
08:32 -
Executando o Worker
17:36 -
Listagem da pasta e package Files
07:14
[DDD] Domain-Driven Design
-
O que é DDD?
02:37 -
Modelo e linguagem onipresente
08:23 -
Domínio e subdomínio
05:23 -
Camadas de software
05:48 -
Entidades e Objetos de Valor
07:13 -
Agregados
04:26 -
Serviços e Módulos
05:49 -
Fábricas e Repositórios
05:52
[DDD] Projeto Prático
-
Introdução
04:42 -
Analisando Código
06:42 -
03:48
-
11:23
-
Refatorando entitidade
12:06 -
Função New
03:39 -
Refatorando modify user
17:09 -
Refatorando get e list user
13:45 -
Implementando UserRepository
11:45 -
UserReadRepository
05:09 -
Movendo testes do repository
08:27 -
Movendo handler
10:31 -
Package Factories
07:03 -
Utilizando Factory
09:14 -
Refatorando Auth
17:49
gRPC
-
06:04
-
Primeiro arquivo .proto
10:14 -
Descrevendo o Service
10:38 -
14:27
-
07:39
-
Implementando Delete
01:44 -
Desenvolvendo método Get
02:24 -
Método List
06:01 -
O server gRPC
12:23 -
Refatorando Auth
11:14 -
gRPC Interceptor
07:11 -
Bypass no /users/create
10:08 -
Ajustes no package auth
07:01 -
Auth no gRPC
25:25 -
Start server
05:23 -
Implementando gRPC no CLI
09:52 -
Auth com gRPC no CLI
07:52 -
Fixes & Teste
18:51
Classificações e revisões de estudantes
