Desenvolvimento Web com Go - Do Zero ao Deploy
- Descrição
- Currículo
- FAQ
- Revisões
Quer aprender como construir e implantar uma aplicação web de ponta a ponta usando Go? Então esse curso é pra você!
Neste curso você aprenderá a desenvolver uma aplicação web do zero, transformando requisitos em funcionalidades! Não apenas desenvolver, você também vai aprender todas as etapas necessárias para colocar a aplicação para executar em um ambiente de containers, tanto localmente como em um servidor VPS na nuvem.
Além de todos os conceitos mais atuais de Go, inclusive com a utilização do novo mecanismo de rotas da versão 1.22, você vai aprender ainda como conectar sua aplicação com banco de dados Postgresql, como controlar as mudanças na estrutura do seu banco usando migrations e como executar toda a infraestrutura da aplicação em containers Docker.
De ponta a ponta!
Você ainda vai aprender como adquirir um domínio público personalizado, e enviar emails utilizando seu domínio. Seguindo as melhores práticas, a aplicação será implantada com HTTPS, pra isso, vamos utilizar o Caddy Server, um servidor web que funciona como um proxy reverse, e em conjunto com o Let’s Encrypt permite a obtenção de um certificado digital válido pra aplicação.
Para a implantação da aplicação no ambiente de produção, vamos construir nossa própria esteira automatizada de CI/CD (Continuous Integration/Continuous Delivery) usando Github Actions.
Embarque nessa jornada e transforme sua carreira como desenvolvedor web completo!
-
4Instalando o GoVídeo Aula
Processo de instalação do runtime do Go no Windows.
-
5Instalando o Visual Studio CodeVídeo Aula
Download e instalação do Visual Studio Code no Windows.
-
6Configurando o VS Code para o desenvolvimento com GoVídeo Aula
Instalando uma extensão para melhorar o suporte à linguagem Go no VS Code.
-
7Instalando o Git (Opcional)Vídeo Aula
Instalação do Git no windows. Caso não deseje instalar o Git, os códigos desenvolvidos nas aulas poderão ser baixados diretamente do Github.
-
8Visão geral da arquitetura cliente/servidorVídeo Aula
Visão geral sobre a troca de informações numa arquitetura do tipo cliente/servidor
-
9Criando um servidor tcp (socket) básico (Opcional)Vídeo Aula
Criar um socket tcp usando o pacote net da biblioteca padrão.
-
10Criando um servidor http básicoVídeo Aula
Subir um servidor http usando o pacote net/http da biblioteca padrão.
-
11Tratando requisições com um Handler HTTPVídeo Aula
Atendendo requisições através de um Handler HTTP.
-
12Tratando requisições com um HandleFuncVídeo Aula
Atendendo requisições através de uma função de handler (HandleFunc).
-
13Entendendo o mecanismo de roteamento do ServeMuxVídeo Aula
Entendendo a fundo o funcionamento do tratamento de rotas pelo DefaultServeMux, e como criar uma instância de ServeMux e associar rotas a ela.
-
14Criando o módulo GoVídeo Aula
Transformando o projeto em um módulo Go
-
15Criando novas rotasVídeo Aula
Adicionando novas rotas em nosso projeto
-
16Métodos HTTPVídeo Aula
Conhecer os métodos HTTP e como restringir o acesso a um handler para um determinado método.
-
17Alterando um cabeçalho de respostaVídeo Aula
Adicionando mais informação em uma resposta através da inclusão de um cabeçalho HTTP.
-
18Usando a função http.ErrorVídeo Aula
Usando a função http.Error para enviar respostas de erro para o cliente HTTP.
-
19Manipulando cabeçalhos HTTPVídeo Aula
Adicionando, removendo e alterando cabeçalhos de resposta HTTP.
-
20Obtendo informações sobre a URLVídeo Aula
Obtendo dados sobre a url acessada através do campo request.URL
-
21Estruturação de códigoVídeo Aula
Maneiras de como estruturar e organizar o código em uma aplicação
-
22Criando um servidor HTTP com GoTexto
-
23Renderizando HTML nos handlersVídeo Aula
Renderizando conteúdo HTML em um handler.
-
24Entendendo a função de um templateVídeo Aula
Entendendo como Go processa templates em sua biblioteca padrão.
-
25Server Side Rendering vs Client Side RenderingVídeo Aula
Entendendo a diferença entre Server e Client Side rendering e a escolha feita para esse curso
-
26Experimentando o pacote html/templateVídeo Aula
Criando nosso primeiro template HTML
-
27Criando templates a partir de arquivosVídeo Aula
Usando a função ParseFiles do pacote html/template
-
28Usando templates HTML na home page do projetoVídeo Aula
Convertendo o handler da home page para template HTML
-
29Reuso e composição de templatesVídeo Aula
Alguns templates compartilham partes comuns, como evitar repetição desse tipo de conteúdo?
-
30Definindo templates com as actions define e templateVídeo Aula
Criando templates reutilizáveis com as actions define e template
-
31Templates com valores default usando a action blockVídeo Aula
Como gerar templates com conteúdo que pode ser sobrescrito usando a action block
-
32Criando o template base para o nosso projetoVídeo Aula
Refatorando o código atual do projeto e criando o template base
-
33Servindo conteúdo estáticoVídeo Aula
Como servir arquivos estáticos (css, imagens, javascript, etc) usando o pacote http de Go.
-
34Mudança na fonte escolhidaTexto
-
35Estilização do Layout base da aplicaçãoVídeo Aula
Criação do CSS para a identidade visual base da aplicação
-
36Renderizando HTMLTexto
-
37Gerenciamento de ConfiguraçãoVídeo Aula
Importância de fornecer maneiras de alterar a configuração de uma aplicação de acordo com o ambiente de execução.
-
38Configuração através de Variáveis AmbienteVídeo Aula
Alterando as configurações através de variáveis ambiente.
-
39Configuração através de parâmetros de linha de comandoVídeo Aula
Alterando as configurações através de parâmetros passados via linha de comando.
-
40Configuração através de arquivos JSONVídeo Aula
Alterando as configurações através da leitura de um arquivo JSON contendo os parâmetros da aplicação.
-
41Habilitando a configuração da aplicação: Parte 1Vídeo Aula
Criação do código responsável por permitir a alteração da configuração aplicação de exemplo.
-
42Habilitando a configuração da aplicação: Parte 2Vídeo Aula
Uso de reflection para exibir mais informações sobre as variáveis de configuração da aplicação.
-
43Bugfix no carregamento do valor default de uma variável de configuraçãoVídeo Aula
Correção de um bug no código que carrega o valor default de uma propriedade quando não for informado em uma variável de ambiente.
-
44Gerenciamento de Log - Conhecendo o pacote slogVídeo Aula
Entendendo a importância da gestão de logs para uma aplicação e conhecendo as funcionalidades do novo pacote de logs da biblioteca padrão de go: slog
-
45Configurando o log da aplicação de exemploVídeo Aula
Criando o código responsável por gerenciar os logs da aplicação de exemplo.
-
46Criando um pacote para os http handlersVídeo Aula
Entender o uso do pacote internal e criar um pacote para os http handlers da aplicação de exemplo.
-
47Tratamento de errosVídeo Aula
Rápida revisão sobre tratamento de erros em Go e criação de um error handler para a aplicação de exemplo.
-
48Tratamento de error centralizado nos http handlersVídeo Aula
Melhorando o tratamento de erros nos http handlers da aplicação de exemplo.
-
49IntroduçãoVídeo Aula
Entender a importância da persistência de dados e conhecer as principais opções de bancos de dados relacionais disponíveis.
-
50Instalando o Postgresql usando o DockerVídeo Aula
Aprender como subir uma instância de Postgresql usando o Docker e como conectar ao banco usando a linha de comando e também o Adminer.
-
51Conectando com o banco de dados usando GoVídeo Aula
Aprender como conectar ao banco de dados usando Go através do pacote database/sql e o driver pgx.
-
52Criando uma tabela no banco de dados usando GoVídeo Aula
Aprender como executar um comando de criação de tabela usando Go.
-
53Inserção de dados no banco e proteção contra sql injectionVídeo Aula
Aprender como executar comandos Insert no banco de dados e como evitar sql injection durante a execução.
-
54Inserção com retorno de dadosVídeo Aula
Aprender como inserir um registro no banco e retornar o resultado da inserção.
-
55Consultando um registro único de uma tabela (select one)Vídeo Aula
Executando um select no banco com retorno de apenas uma linha usando a função QueryRow.
-
56Consultando múltiplos registros de uma tabela (select many)Vídeo Aula
Executando um select no banco com retorno de múltiplas linhas usando a função Query.
-
57ORM vs SQL PuroVídeo Aula
Reflexão sobre o uso de ORM versus o uso de SQL puro em um projeto.
-
58Conectando a aplicação com o banco de dadosVídeo Aula
Conectando a aplicação de exemplo com o banco de dados usando o pacote pgxpool
-
59Externalizando a URL do banco em uma env varVídeo Aula
Configurando a URL de acesso ao banco em uma variável de ambiente e lendo seu valor através da struct de config.
-
60Usando Makefile para automatizar comandosVídeo Aula
Como usar o make para automatizar comandos de terminal.
-
61Go Migrate: controlando alterações no modelo de dados usando migrationsVídeo Aula
Usando o pacote Go Migrate para gerenciar migrations.
-
62Camada de Acesso a dados com o padrão RepositoryVídeo Aula
Usando o padrão Repository para fornecer uma camada de acesso aos dados.
-
63Lidando com campos nulosVídeo Aula
Como lidar com campos nullable usando o pgx ou pacote database/sql.
-
64Consultando uma note pelo IdVídeo Aula
-
65Inserindo uma noteVídeo Aula
-
66Atualizando os dados de uma noteVídeo Aula
-
67Deletando uma note pelo IdVídeo Aula
-
68Custom error para o RepositoryVídeo Aula
-
69Exibindo uma anotação (note)Vídeo Aula
-
70Exibindo a lista de anotações na página inicialVídeo Aula
-
71Adicionando jQuery no projetoVídeo Aula
-
72Request ContextVídeo Aula
-
73Tratamento de Formulários HTMLVídeo Aula
-
74Persistindo uma nova anotação (note)Vídeo Aula
-
75Componente de Seleção de CorVídeo Aula
-
76Excluindo uma anotação (note)Vídeo Aula
-
77Melhorando a tela de visualização de uma anotação (note)Vídeo Aula
-
78Atualizando uma anotação (note)Vídeo Aula
-
79Validação de FormuláriosVídeo Aula
-
80Instalando a versão 1.22 de GoVídeo Aula
-
81Migrando a rota de visualização de uma anotaçãoVídeo Aula
-
82Migrando a rota de exclusão de uma anotaçãoVídeo Aula
-
83Migrando a rota de edição de uma anotaçãoVídeo Aula
-
84Migrando a rota de salvar uma anotaçãoVídeo Aula
-
85Teste seu conhecimento sobre as novidades de roteamento de Go 1.22Questionário