
Processo de instalação do runtime do Go no Windows.
Download e instalação do Visual Studio Code no Windows.
Instalando uma extensão para melhorar o suporte à linguagem Go no VS Code.
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.
Visão geral sobre a troca de informações numa arquitetura do tipo cliente/servidor
Criar um socket tcp usando o pacote net da biblioteca padrão.
Subir um servidor http usando o pacote net/http da biblioteca padrão.
Atendendo requisições através de um Handler HTTP.
Atendendo requisições através de uma função de handler (HandleFunc).
Entendendo a fundo o funcionamento do tratamento de rotas pelo DefaultServeMux, e como criar uma instância de ServeMux e associar rotas a ela.
Transformando o projeto em um módulo Go
Adicionando novas rotas em nosso projeto
Conhecer os métodos HTTP e como restringir o acesso a um handler para um determinado método.
Adicionando mais informação em uma resposta através da inclusão de um cabeçalho HTTP.
Usando a função http.Error para enviar respostas de erro para o cliente HTTP.
Adicionando, removendo e alterando cabeçalhos de resposta HTTP.
Obtendo dados sobre a url acessada através do campo request.URL
Maneiras de como estruturar e organizar o código em uma aplicação
Renderizando conteúdo HTML em um handler.
Entendendo como Go processa templates em sua biblioteca padrão.
Entendendo a diferença entre Server e Client Side rendering e a escolha feita para esse curso
Criando nosso primeiro template HTML
Usando a função ParseFiles do pacote html/template
Convertendo o handler da home page para template HTML
Alguns templates compartilham partes comuns, como evitar repetição desse tipo de conteúdo?
Criando templates reutilizáveis com as actions define e template
Como gerar templates com conteúdo que pode ser sobrescrito usando a action block
Refatorando o código atual do projeto e criando o template base
Como servir arquivos estáticos (css, imagens, javascript, etc) usando o pacote http de Go.
Criação do CSS para a identidade visual base da aplicação
Importância de fornecer maneiras de alterar a configuração de uma aplicação de acordo com o ambiente de execução.
Alterando as configurações através de variáveis ambiente.
Alterando as configurações através de parâmetros passados via linha de comando.
Alterando as configurações através da leitura de um arquivo JSON contendo os parâmetros da aplicação.
Criação do código responsável por permitir a alteração da configuração aplicação de exemplo.
Uso de reflection para exibir mais informações sobre as variáveis de configuração da aplicação.
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.
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
Criando o código responsável por gerenciar os logs da aplicação de exemplo.
Entender o uso do pacote internal e criar um pacote para os http handlers da aplicação de exemplo.
Rápida revisão sobre tratamento de erros em Go e criação de um error handler para a aplicação de exemplo.
Melhorando o tratamento de erros nos http handlers da aplicação de exemplo.
Entender a importância da persistência de dados e conhecer as principais opções de bancos de dados relacionais disponíveis.
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.
Aprender como conectar ao banco de dados usando Go através do pacote database/sql e o driver pgx.
Aprender como executar um comando de criação de tabela usando Go.
Aprender como executar comandos Insert no banco de dados e como evitar sql injection durante a execução.
Aprender como inserir um registro no banco e retornar o resultado da inserção.
Executando um select no banco com retorno de apenas uma linha usando a função QueryRow.
Executando um select no banco com retorno de múltiplas linhas usando a função Query.
Reflexão sobre o uso de ORM versus o uso de SQL puro em um projeto.
Conectando a aplicação de exemplo com o banco de dados usando o pacote pgxpool
Configurando a URL de acesso ao banco em uma variável de ambiente e lendo seu valor através da struct de config.
Como usar o make para automatizar comandos de terminal.
Usando o pacote Go Migrate para gerenciar migrations.
Usando o padrão Repository para fornecer uma camada de acesso aos dados.
Como lidar com campos nullable usando o pgx ou pacote database/sql.
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!