# Go — Estudo _Fonte: project-based-learning_ --- ## 📚 Recursos Estudados | Tutorial | Tópicos | |----------|---------| | [Build a CLI Tool](https://blog.alexellis.io/5-keys-to-a-killer-go-cli/) | CLI, flags, cobra | | [HTTP Server from Scratch](https://www.youtube.com/playlist?list=PLmxJgSxVWAMhG5YjL1XFPm5E5PAi-BXgZ) | net/http, routing | | [WebSocket Chat](https://gowebexamples.com/websockets/) | gorilla/websocket | | [Docker/gRPC Tools](https://github.com/miguellgt/grpc-go-course) | gRPC, protocol buffers | | [REST API with Gin](https://github.com/gin-gonic/gin) | Gin framework | | [Key-Value Store in Go](https://github.com/elliotchance/redismock) | Redis-like in Go | ## 🎯 Aplicações para Mundo Telecom 1. **CLI de administração** — scripts de infra em Go (mais rápido que Python) 2. **Proxy/Servidor leve** — substituir scripts pesados 3. **Ferramentas de deploy** — automação de containers 4. **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 - `flag` package 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 - [x] Go Core (goroutines, channels, interfaces) - [x] CLI Tools em Go - [x] HTTP/Servidores com Go - [x] gRPC e microserviços - [ ] Projeto prático: CLI de monitoramento - [ ] Projeto prático: servidor HTTP concorrente