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.
Condições de corrida e o race detector
Nesta aula, você aprenderá o que são condições de corrida (data races) em Go, como detectá-las com a ferramenta race detector e como evitá-las usando sincronização adequada. Abordaremos o comando 'go test -race', os mecanismos de sincronização como canais e mutexes, e a filosofia de 'compartilhar memória comunicando-se'.
✓ Lido
Estrutura de projetos
Esta aula aborda a estrutura idiomática de projetos em Go, explicando a organização de diretórios como cmd/ e internal/, além de boas práticas para manter o código modular e reutilizável.
✓ Lido
Go Modules
Esta aula aborda Go Modules, o sistema oficial de gerenciamento de dependências do Go. Você aprenderá a estrutura dos arquivos go.mod e go.sum, como usar go get, versionamento semântico e gerenciamento de dependências.
✓ Lido
init e ordem de inicialização
Nesta aula, exploramos a função init() em Go, sua ordem de execução em relação a variáveis de pacote e construtores, e os cuidados necessários ao utilizá-la. Compreender a inicialização é crucial para evitar dependências ocultas e efeitos colaterais inesperados.
✓ Lido
Os pacotes io e bufio
Esta aula explora os pacotes io e bufio da biblioteca padrão de Go, apresentando interfaces como Reader e Writer, a função io.Copy, o papel do buffering e a composição de streams. Você aprenderá a manipular fluxos de dados de forma eficiente e idiomática.
✓ Lido
Encoding JSON
Nesta aula, você aprenderá a trabalhar com JSON em Go, incluindo marshal/unmarshal, uso de tags de struct, campos opcionais e a opção omitempty. O conteúdo aborda desde conceitos básicos até boas práticas para serialização e desserialização eficientes.
✓ Lido
Trabalhando com arquivos (os)
Esta aula aborda a manipulação de arquivos em Go usando o pacote os, incluindo abertura, leitura, escrita e gerenciamento de permissões, com foco no tratamento de erros. Você aprenderá a usar funções como os.Open, os.Create, os.WriteFile e a definir permissões com os.FileMode. Exemplos práticos e exercícios consolidam o aprendizado.
✓ Lido
O pacote fmt
A aula aborda o pacote fmt da linguagem Go, detalhando as funções de saída (Print, Printf, Sprintf), os verbos de formatação, a leitura de entrada (Scan) e boas práticas. O conteúdo inclui exemplos práticos e explicações aprofundadas para uso profissional.
✓ Lido
O pacote time
Nesta aula, exploramos o pacote time da linguagem Go, que fornece funcionalidades para manipulação de tempo, duração, formatação, timers, tickers e fusos horários. Aprendemos a usar os tipos Time e Duration, como formatar datas usando o layout de referência, criar timers e tickers com canais, e trabalhar com fusos horários. A aula inclui exemplos práticos e exercícios para fixação.
✓ Lido