2.4 KiB
2.4 KiB
Go — Estudo
Fonte: project-based-learning
📚 Recursos Estudados
| Tutorial | Tópicos |
|---|---|
| Build a CLI Tool | CLI, flags, cobra |
| HTTP Server from Scratch | net/http, routing |
| WebSocket Chat | gorilla/websocket |
| Docker/gRPC Tools | gRPC, protocol buffers |
| REST API with Gin | Gin framework |
| Key-Value Store in Go | Redis-like in Go |
🎯 Aplicações para Mundo Telecom
- CLI de administração — scripts de infra em Go (mais rápido que Python)
- Proxy/Servidor leve — substituir scripts pesados
- Ferramentas de deploy — automação de containers
- Monitoramento — health checks, heartbeats
📝 Conceitos Aprendidos
Go Core
- Goroutines: concorrência leve (não threads OS)
- Channels: comunicação entre goroutines (CSP model)
- Interfaces: duck typing, composição
- Structs: tipos customizados, métodos
- Errors: tratamento explícito (não exceptions)
- Packages: módulos,
go mod, GOPATH vs modules
CLI com Go
flagpackage ou cobra/viper para CLIs complexas- Compilação cross-platform:
GOOS=linux GOARCH=amd64 go build - Binário único: zero dependências runtime
- Ideal para tools de deploy, health check, backup
Web em Go
- net/http: servidor HTTP padrão (rápido, estável)
- Gin: framework web mais popular (similar Flask)
- Echo: alternativo, mais leve
- gRPC: comunicação entre microserviços (Protocol Buffers)
Go vs Python para CLI
| Aspecto | Go | Python |
|---|---|---|
| Binário | Único, estático | Precisa runtime |
| Performance | ~40x mais rápido | Mais lento |
| Concorrência | Goroutines nativas | threading/asyncio |
| Simplicidade | Mais verboso | Mais conciso |
| Ideal para | Ferramentas de sistema, servidores | Scripts, automação, data science |
✅ Progresso
- Go Core (goroutines, channels, interfaces)
- CLI Tools em Go
- HTTP/Servidores com Go
- gRPC e microserviços
- Projeto prático: CLI de monitoramento
- Projeto prático: servidor HTTP concorrente