Hands-on Go — Avançando com Exemplos Práticos
👋 Olá, pessoal!
Depois do primeiro post sobre os quatro exemplos iniciais em gostart, trouxe mais quatro casos de uso que refletem desafios reais do dia a dia com Go. Vamos mergulhar no que foi adicionado!
📂 Estrutura Atualizada
gostart
┣ exemplos
┃ ┣ 01_hello
┃ ┣ 02_arguments
┃ ┣ 03_duplicates
┃ ┣ 04_animated_gif
┃ ┣ 05_http_requests
┃ ┣ 06_concurrency_channels
┃ ┣ 07_file_manipulation
┃ ┗ 08_api_integration
┗ README.MD
Cada pasta contém um main.go e um README.md que guia você passo a passo.
✅ 05 - HTTP Requests
O que foi adicionado:
- Consumo de APIs REST com GET e POST
- Tratamento de JSON (marshal/unmarshal)
- Uso de
http.NewRequeste customização de headers - Configuração de
http.Clientcom timeout
Por que isso importa?
Em aplicações reais você vai buscar e enviar dados para serviços externos — saber lidar bem com requisições HTTP é fundamental.
✅ 06 - Concurrency & Channels
O que foi adicionado:
- Criação de goroutines para tarefas paralelas
- Comunicação via canais (bufferizados e não-bufferizados)
- Sincronização com
sync.WaitGroup - Multiplexação de canais usando
selectedefault - Padrão de worker pool
Por que isso importa?
Go foi projetado para concorrência — esses exemplos mostram como escalar processos de forma segura e eficiente.
✅ 07 - File Manipulation
O que foi adicionado:
- Leitura/escrita de arquivos de texto e binários (
os,bufio,io) - Cópia de arquivos com
io.Copy - Processamento de CSV (
encoding/csv) e JSON (encoding/json) - Percurso de diretórios e coleta de metadados (
filepath.WalkDir,os.DirEntry)
Por que isso importa?
Muita lógica de back-end envolve manipular arquivos locais — desde logs até cargas de dados em lote.
✅ 08 - API Integration
O que foi adicionado:
- Estruturação de um client customizado com interface para facilitar testes
- Autenticação via header (API Key / Bearer Token)
- Controle de timeout e cancelamento com
context - Exponential backoff (retry) em erros de servidor (5xx)
- Tratamento robusto de erros com empacotamento de contexto
Por que isso importa?
Em projetos corporativos você vai integrar serviços pagos ou internos — esse exemplo mostra padrões de produção.
🚀 Como começar
- Clone o repositório ou atualize seu fork:
git clone https://github.com/TheZehel/gostart.git
cd gostart/exemplos
-
Escolha um dos novos diretórios (05_http_requests, 06_concurrency_channels etc.)
-
Leia o README.md para entender o fluxo e execute:
go run main.go
🤝 Contribuições
Quer ajudar a enriquecer o gostart?
- Crie uma pasta 0X_nome_do_exemplo/ seguindo a mesma convenção
- Inclua main.go com código comentado e README.md com explicação clara
- Exemplos sugeridos: bancos de dados, gRPC, CLI interativas, testes automatizados, microserviços…
- Abra um PR e vamos crescer esse repositório juntos! 💪
💬 Dúvidas, sugestões ou feedback? Deixe um comentário abaixo.
Vamos continuar aprendendo fazendo! 🚀