Add study notes: 22 areas documented by Diego IA
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user