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

Pacotes

Esta aula aborda o sistema de pacotes em Go, incluindo declaração de pacotes, visibilidade de identificadores, importação de pacotes e organização de código. Você aprenderá a estruturar projetos Go de forma modular e reutilizável.

✓ Lido
Go

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
Go

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

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
Go

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
Go

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
Go

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
Go

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
Go

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
Go

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