Categoria: Go

Go nasceu no Google para escrever software de servidor que compila rápido e escala bem. Aposta na simplicidade — poucas palavras-chave, biblioteca padrão robusta e concorrência nativa por goroutines e canais — e entrega um binário único, sem dependências, o que a tornou padrão em ferramentas de infraestrutura como Docker e Kubernetes. A documentação oficial fica em go.dev.

Go

Testes avançado

Nesta aula avançada de testes em Go, você aprenderá a criar subtests para organizar e executar testes de forma granular, gerenciar setup e teardown com t.Cleanup, criar funções helper para reduzir repetição e medir a cobertura de código com as ferramentas nativas do Go.

✓ Lido
Go

Benchmarks

Esta aula ensina como escrever benchmarks em Go usando o pacote testing, incluindo a função BenchmarkXxx, a variável b.N, medição de alocações e comparação de desempenho entre diferentes implementações.

✓ Lido
Go

Testes em Go

Nesta aula, você aprenderá a criar testes unitários em Go usando o pacote testing, a convenção func TestXxx, o comando go test e a técnica de table-driven tests. Vamos explorar desde os conceitos básicos até padrões mais avançados, com exemplos práticos e exercícios para fixar o conteúdo.

✓ Lido
Go

Mocks e dublês de teste

Nesta aula, você aprenderá a usar mocks e dublês de teste em Go para isolar unidades de código, testar comportamentos e simular dependências externas. Vamos explorar interfaces para testabilidade, criação de mocks manuais, uso do pacote httptest e boas práticas essenciais.

✓ Lido
Go

Cliente HTTP

Nesta aula, você aprenderá a criar clientes HTTP em Go, desde o uso simples de http.Get até a configuração de um http.Client com timeouts e requisições customizadas. Também veremos como tratar respostas de forma eficiente, incluindo o fechamento do corpo e a leitura de dados, com exemplos práticos e exercícios.

✓ Lido
Go

Ferramentas: vet, fmt, lint

Esta aula explora as principais ferramentas de qualidade de código em Go: go vet, gofmt e golangci-lint. Você aprenderá a usá-las no dia a dia, como integrá-las ao pipeline de desenvolvimento e como elas ajudam a manter um código limpo, correto e consistente.

✓ Lido
Go

Servidor HTTP (net/http)

Esta aula apresenta o pacote net/http da linguagem Go, cobrindo os conceitos fundamentais para criar servidores HTTP: a função http.HandleFunc, o roteador ServeMux, o tipo Handler e como iniciar o servidor com ListenAndServe. Inclui exemplos práticos, boas práticas e exercícios com respostas.

✓ Lido
Go

Fuzzing

Nesta aula, você aprenderá sobre fuzzing em Go, uma técnica automatizada de teste que fornece entradas aleatórias para encontrar bugs e vulnerabilidades. Exploraremos a função FuzzXxx, o comando go test -fuzz, como identificar bugs e a importância do corpus de testes.

✓ Lido
Go

Templates HTML (html/template)

Nesta aula, você aprenderá a usar o pacote html/template do Go para gerar HTML dinâmico com segurança, cobrindo parsing, execução, variáveis, escape automático e composição de templates.

✓ Lido
Go

Roteamento e a ServeMux moderna

Esta aula explora o roteamento moderno do pacote net/http do Go a partir da versão 1.22, incluindo padrões de rota, métodos HTTP, path parameters e uma comparação com frameworks populares. Você aprenderá a criar servidores web mais expressivos e eficientes usando apenas a biblioteca padrão.

✓ Lido
Go

Middleware em HTTP

Esta aula ensina a implementar middlewares em HTTP com Go, cobrindo o padrão de middleware, encadeamento, e exemplos práticos de logging e autenticação. Você aprenderá a criar middlewares reutilizáveis que envolvem handlers e a compor pipelines de processamento.

✓ Lido
Go

O pacote database/sql

Nesta aula, você aprenderá a usar o pacote database/sql do Go para interagir com bancos de dados relacionais. Abordaremos desde a escolha de drivers, abertura de conexões, execução de consultas com Query e Exec, até o gerenciamento do pool de conexões, com exemplos práticos e boas práticas.

✓ Lido
Go

Context em handlers web

Nesta aula, exploramos o uso do pacote context em handlers web na linguagem Go. Aprendemos a propagar context, lidar com cancelamento de requisições, armazenar valores e aplicar timeouts para criar aplicações web robustas e eficientes.

✓ Lido
Go

Construindo uma API JSON

Aula sobre construção de uma API JSON em Go, cobrindo decodificação de requisições, codificação de respostas, status codes e estruturação do projeto. Inclui exemplos práticos, referências oficiais e exercícios com respostas.

✓ Lido
Go

Transações

Nesta aula, você aprenderá a implementar transações em Go usando o pacote database/sql, cobrindo os comandos Begin, Commit e Rollback, os padrões de uso com defer, os níveis de isolamento e o tratamento adequado de erros. Ao final, você terá a base para operações de banco de dados seguras e consistentes.

✓ Lido