ð Go Ecosystem: āđāļāļĢื่āļāļāļĄืāļāđāļĨāļ°āđāļĨāļāļĢāļēāļĢีāļี่āļāļģāđāļ็āļāļŠāļģāļŦāļĢัāļāļัāļāļัāļāļāļē
āļāļēāļĢāđāļ้āļēāļŠู่āđāļĨāļāļāļāļ Go (Golang) āđāļĄ่āđāļ้āļĄีāđāļีāļĒāļāđāļ่āļāļēāļĢāđāļĢีāļĒāļāļĢู้āđāļ§āļĒāļēāļāļĢāļ์ (Syntax) āđāļ่āļēāļั้āļ āđāļ่āļĒัāļāļĢāļ§āļĄāļึāļāļāļēāļĢāđāļ้āļēāđāļāđāļāļĢื่āļāļāļĄืāļ (Tools) āđāļĨāļ°āđāļĨāļāļĢāļēāļĢี (Libraries) āļี่āđāļ็āļāļŦัāļ§āđāļāļŠāļģāļัāļāđāļāļāļēāļĢāļŠāļĢ้āļēāļāđāļāļāļāļĨิāđāļāļัāļāļี่āļĢāļ§āļāđāļĢ็āļ§āđāļĨāļ°āļĄีāļāļĢāļ°āļŠิāļāļิāļ āļēāļāļŠูāļ
ð 1. Web Frameworks (āđāļāļāļŦāļĨัāļāļāļāļāļāļēāļĢāļัāļāļāļēāđāļ§็āļ)
Go āļĄีāļื่āļāđāļŠีāļĒāļāđāļāļ้āļēāļāļāļēāļĢāļŠāļĢ้āļēāļ API āđāļĨāļ° Microservices āļี่āļĢāļ§āļāđāļĢ็āļ§ āļี่āļืāļ Web Frameworks āļี่āđāļ้āļĢัāļāļāļ§āļēāļĄāļิāļĒāļĄ:
| Framework | āļุāļāđāļ่āļ (Key Selling Points) | āļāļēāļĢāđāļ้āļāļēāļāļŦāļĨัāļ |
| Gin | āđāļāļēāđāļĨāļ°āđāļĢ็āļ§āļĄāļēāļ (Minimalist & High Performance), āļĄี Middleware āļี่āļāļģāđāļ็āļāļāļĢāļ | āđāļŦāļĄāļēāļ°āļี่āļŠุāļāļŠāļģāļŦāļĢัāļāļŠāļĢ้āļēāļ RESTful APIs āđāļĨāļ° Microservices āļี่āļ้āļāļāļāļēāļĢāļāļ§āļēāļĄāđāļĢ็āļ§ |
| Echo | āđāļāļĢāļāļŠāļĢ้āļēāļāļัāļāđāļāļ āđāļĨāļ°āļĄีāļāļĢāļ°āļŠิāļāļิāļ āļēāļāļŠูāļ, āļĄี Middleware āļี่āļĢāļāļāļĢัāļāļāļēāļĢāđāļ้āļāļēāļāļŦāļĨāļēāļāļŦāļĨāļēāļĒ | āļŠāļĢ้āļēāļ Web API āļั่āļ§āđāļ, āļĄีāļāļ§āļēāļĄāļŠāļĄāļุāļĨāļĢāļ°āļŦāļ§่āļēāļāļāļ§āļēāļĄāđāļĢ็āļ§āļัāļāļีāđāļāļāļĢ์āļี่āļāļĢāļāļ้āļ§āļ |
| Fiber | āđāļ้āļĢัāļāđāļĢāļāļัāļāļāļēāļĨāđāļāļāļēāļ Express.js (Node.js), Syntax āđāļ้āļ่āļēāļĒ, āļāļĢāļ°āļŠิāļāļิāļ āļēāļāļŠูāļ | āđāļŦāļĄāļēāļ°āļŠāļģāļŦāļĢัāļāļัāļāļัāļāļāļēāļี่āļุ้āļāđāļāļĒāļัāļ Node.js āļŦāļĢืāļāļ้āļāļāļāļēāļĢ API āļี่āļĢāļ§āļāđāļĢ็āļ§āđāļ็āļāļิāđāļĻāļĐ |
| Revel | Full-stack Framework āļี่āļāļģāļāļēāļāđāļ้āļāļĢāļāļ§āļāļāļĢ āđāļĄ่āļ้āļāļāļั้āļāļ่āļēāđāļิ่āļĄāđāļิāļĄāļĄāļēāļ | āļŠāļĢ้āļēāļ Web Application āđāļāļāļั้āļāđāļิāļĄāļี่āļ้āļāļāļāļēāļĢāļุāļāļāļĒ่āļēāļāļĢāļ§āļĄāļāļĒู่āđāļāļี่āđāļีāļĒāļ§ |
| Beego | MVC Style (Model-View-Controller), āļĄีāļีāđāļāļāļĢ์āļāļĢāļāļāļĢัāļ āđāļ่āļ ORM āđāļĨāļ° Session Management | āđāļŦāļĄāļēāļ°āļŠāļģāļŦāļĢัāļāđāļāļĢāđāļāļāļ์āļāļāļēāļāđāļŦāļ่āļี่āļ้āļāļāļāļēāļĢāđāļāļĢāļāļŠāļĢ้āļēāļāđāļāļāļั้āļāđāļิāļĄ |
ð ️ 2. Libraries āļŠāļģāļัāļ (āđāļāļĢื่āļāļāļĄืāļāđāļāļāļēāļ°āļāļēāļ)
āđāļĨāļāļĢāļēāļĢีāđāļŦāļĨ่āļēāļี้āļ่āļ§āļĒāđāļŦ้āļāļēāļāđāļāļāļēāļ°āļāļēāļāļ่āļēāļĒāļึ้āļ āđāļĨāļ°āđāļ็āļāļŦัāļ§āđāļāļāļāļāļŠāļāļēāļัāļāļĒāļāļĢāļĢāļĄ Microservices:
GORM (Go-ORM):
āļŦāļ้āļēāļี่: ORM (Object-Relational Mapping) āļี่āđāļ้āļĢัāļāļāļ§āļēāļĄāļิāļĒāļĄāļŠูāļāļŠุāļ
āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ: āļ่āļ§āļĒāđāļŦ้āļัāļāļāļēāļĢāļāļēāļāļ้āļāļĄูāļĨ (SQL Databases) āđāļ้āļ่āļēāļĒāļึ้āļāđāļāļĒāđāļ้ Object āļāļāļ Go
Go-kit:
āļŦāļ้āļēāļี่: Toolkit āļี่āđāļ้āļāļāļēāļĢāļŠāļĢ้āļēāļ Microservices āļี่āļัāļāļ้āļāļāđāļĨāļ°āļāļāļāļēāļ (Resilient)
āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ: āļĄีāđāļāļĢื่āļāļāļĄืāļāļŠāļģāļŦāļĢัāļ Logging, Tracing, Circuit Breakers āđāļĨāļ°āļāļēāļĢāļŠื่āļāļŠāļēāļĢāļĢāļ°āļŦāļ§่āļēāļ Service
Buffalo:
āļŦāļ้āļēāļี่: Full-stack Web Dev Framework āļี่āđāļ้āļāļāļ§āļēāļĄāđāļĢ็āļ§āđāļāļāļēāļĢāļัāļāļāļē (Productivity)
āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ: āļĄāļēāļāļĢ้āļāļĄāļัāļāļีāđāļāļāļĢ์āļŠāļģāļŦāļĢัāļ Templating, Asset Pipeline āđāļĨāļ°āļāļēāļĢ Scaffolding
Chi:
āļŦāļ้āļēāļี่: Router āļี่āđāļāļēāđāļĨāļ°āļĄีāļāļ§āļēāļĄāļĒืāļāļŦāļĒุ่āļāļŠูāļ (Modular)
āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ: āđāļ้āļŠāļģāļŦāļĢัāļāļัāļāļāļēāļĢāđāļŠ้āļāļāļēāļ (Routing) āļāļāļ HTTP Requests āđāļāļ Router āļĄāļēāļāļĢāļāļēāļāđāļĄื่āļāļ้āļāļāļāļēāļĢāļāļĢāļ°āļŠิāļāļิāļ āļēāļāļี่āđāļŦāļืāļāļāļ§่āļē
Kratos:
āļŦāļ้āļēāļี่: Framework āļี่āļāļāļāđāļāļāļĄāļēāđāļื่āļāļĢāļāļāļĢัāļ Cloud-Native Service āđāļāļĒāđāļāļāļēāļ°
āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ: āļĄีāđāļāļĢื่āļāļāļĄืāļāļี่āļāļĢ้āļāļĄāļŠāļģāļŦāļĢัāļāļāļēāļĢāđāļ้āļāļēāļāđāļāļĢāļ°āļāļāļāļĨāļēāļ§āļ์āļāļāļēāļāđāļŦāļ่ (āļāļĨ้āļēāļĒāļัāļ Go-kit āđāļ่āļĄีāļีāđāļāļāļĢ์āļี่āļāļ§้āļēāļāļāļ§่āļē)
ðŧ 3. IDE āđāļĨāļ° Development Tools
āđāļāļĢื่āļāļāļĄืāļāļŠāļģāļŦāļĢัāļāļ่āļ§āļĒāļุāļāđāļีāļĒāļāđāļ้āļāđāļ้āļāļĒ่āļēāļāļĄีāļāļĢāļ°āļŠิāļāļิāļ āļēāļ:
| āđāļāļĢื่āļāļāļĄืāļ | āļุāļāļŠāļĄāļัāļิāļี่āđāļāļāđāļ่āļ | āļāļāļāļēāļāđāļāļāļēāļĢāļัāļāļāļē |
| GoLand (JetBrains) | Powerful IDE āļŠāļģāļŦāļĢัāļ Go āđāļāļĒāđāļāļāļēāļ° āļĄีāļāļēāļĢāļ§ิāđāļāļĢāļēāļ°āļŦ์āđāļ้āļāđāļิāļāļĨึāļ (Deep Code Analysis) | āđāļŦāļĄāļēāļ°āļŠāļģāļŦāļĢัāļāļัāļāļัāļāļāļēāļี่āļ้āļāļāļāļēāļĢāļŠāļ āļēāļāđāļ§āļāļĨ้āļāļĄāđāļāļāļāļĢāļāļ§āļāļāļĢāđāļĨāļ°āļีāđāļāļāļĢ์āļั้āļāļŠูāļ |
| VS Code + Go plugin | āđāļ้āļ่āļēāļĒ āļ้āļģāļŦāļัāļāđāļāļē āđāļĨāļ°āļĄี Community āđāļŦāļ่āļĄāļēāļ | āđāļ็āļāļัāļ§āđāļĨืāļāļāļี่āļĒāļāļāđāļĒี่āļĒāļĄāļŠāļģāļŦāļĢัāļāļุāļāļāļ āđāļāļĒāđāļāļāļēāļ°āļู้āļี่āļุ้āļāđāļāļĒāļัāļ VS Code āļāļĒู่āđāļĨ้āļ§ |
| Delve | Debugger āļĄāļēāļāļĢāļāļēāļāļāļāļ Go | āđāļ้āđāļāļāļēāļĢāļิāļāļāļēāļĄāļāļēāļĢāļāļģāļāļēāļāļāļāļāđāļ้āļ āđāļื่āļāļ้āļāļŦāļēāđāļĨāļ°āđāļ้āđāļ Bug |
| Gopls | Language Server āļĄāļēāļāļĢāļāļēāļāļŠāļģāļŦāļĢัāļ Go | āļĢāļāļāļĢัāļāļีāđāļāļāļĢ์āļŠāļģāļัāļ āđāļ่āļ Auto-complete, Refactoring, Linting āđāļ Editor |
| Go Modules | āļัāļāļāļēāļĢ Dependency āđāļĨāļ° Versioning āļāļāļāđāļĨāļāļĢāļēāļĢีāļี่āđāļ้ | āđāļ็āļāļŦัāļ§āđāļāļāļāļāļāļēāļĢāļัāļāļāļēāļĢāđāļāļĢāđāļāļāļ์ Go āļั้āļāđāļ่āļี 2018 āđāļ็āļāļ้āļāļĄāļē |
⚙️ 4. Infrastructure / DevOps Tools (Go-Powered)
āđāļāļĢื่āļāļāļĄืāļāđāļŦāļĨ่āļēāļี้āļูāļāļŠāļĢ้āļēāļāļึ้āļāļ้āļ§āļĒ Go āđāļĨāļ°āđāļ็āļāļุāļāđāļāļŠāļģāļัāļāđāļāđāļĨāļ DevOps āļึ่āļāļัāļāļัāļāļāļē Go āļāļ§āļĢāļāļģāļāļ§āļēāļĄāđāļ้āļēāđāļ:
| āđāļāļĢื่āļāļāļĄืāļ | āļāļāļāļēāļ | āļāļ§āļēāļĄāđāļื่āļāļĄāđāļĒāļāļัāļ Go |
| Docker | āļŠāļĢ้āļēāļāđāļĨāļ°āļĢัāļ Container | āļูāļāđāļีāļĒāļāļ้āļ§āļĒ Go āđāļ็āļāđāļāļĢื่āļāļāļĄืāļāļŠāļģāļัāļāđāļāļāļēāļĢ Deploy āđāļāļ Go |
| Kubernetes (K8s) | āļĢāļ°āļāļ Orchestration āđāļื่āļāļัāļāļāļēāļĢ Container Scale-out | āļูāļāđāļีāļĒāļāļ้āļ§āļĒ Go āđāļ็āļāļĄāļēāļāļĢāļāļēāļāđāļāļāļēāļĢāļัāļāļāļēāļĢ Microservices āļี่āļŠāļĢ้āļēāļāļ้āļ§āļĒ Go |
| Terraform | Infrastructure as Code (IaC) Tool | āļูāļāđāļีāļĒāļāļ้āļ§āļĒ Go āđāļ้āļัāļāļāļēāļĢāđāļāļĢāļāļŠāļĢ้āļēāļāļื้āļāļāļēāļāļāļāļāļĨāļēāļ§āļ์āđāļื่āļāļĢāļāļāļĢัāļāđāļāļ Go |
| Prometheus | āļĢāļ°āļāļ Monitoring āđāļĨāļ° Alerting | āļูāļāđāļีāļĒāļāļ้āļ§āļĒ Go āđāļĨāļ°āļĄี Go Client Library āđāļāļāļēāļĢāļัāļ Metrics āđāļāđāļāļ Go āļāļāļāļุāļ |
| Grafana | Visualization Dashboard | āđāļ้āđāļāļāļēāļĢāđāļŠāļāļāļāļĨāļ้āļāļĄูāļĨ Monitoring āļāļēāļ Prometheus āđāļื่āļāļ§ิāđāļāļĢāļēāļ°āļŦ์āļŠุāļāļ āļēāļāļāļāļāđāļāļ Go |
ðž️ 5. Desktop Library (GUI Frameworks)
āđāļĄ้āļ§่āļē Go āļāļ°āđāļĄ่āđāļ้āļĢัāļāļāļ§āļēāļĄāļิāļĒāļĄāđāļ่āļēāļ āļēāļĐāļēāļื่āļāđāļāļāļēāļĢāļัāļāļāļē Desktop Application āđāļ่āļ็āļĄีāđāļĨāļāļĢāļēāļĢีāđāļŦ้āđāļ้āļāļēāļ:
Fyne: āđāļĨāļāļĢāļēāļĢีāļี่āļŠāļĢ้āļēāļ UI āļŠāļģāļŦāļĢัāļ Desktop āđāļĨāļ° Mobile āđāļāļĒāđāļāļāļēāļ° āđāļ้āļāļāļēāļĢāļāļāļāđāļāļāļี่āļัāļāļŠāļĄัāļĒ (Modern Design) āđāļĨāļ°āļĢัāļāđāļ้āļŦāļĨāļēāļĒāđāļāļĨāļāļāļāļĢ์āļĄ
Wails: āđāļ็āļāđāļāļĢื่āļāļāļĄืāļāļี่āļ่āļ§āļĒāđāļŦ้āļุāļāļŠāļēāļĄāļēāļĢāļāļŠāļĢ้āļēāļ Desktop Application āđāļāļĒāđāļ้ Go āđāļ็āļ Backend āđāļĨāļ°āđāļ้ Front-end Technology (HTML/CSS/JS) āļี่āļุāļāļุ้āļāđāļāļĒāđāļāļāļēāļĢāļŠāļĢ้āļēāļāļŠ่āļ§āļāļิāļāļ่āļāļู้āđāļ้ (UI)
āļี่āļืāļāļุāļāđāļāļĢื่āļāļāļĄืāļāđāļĨāļ°āđāļĨāļāļĢāļēāļĢีāļี่āļāļĢāļāļ้āļ§āļāđāļĨāļ°āļāļĢāļāļāļĨัāļāļŠāļģāļŦāļĢัāļāļāļēāļĢāđāļĢิ่āļĄāļ้āļāđāļŠ้āļāļāļēāļ Go āļāļāļāļุāļāļāļĢัāļ
⏭️ āļิāļāļāļēāļĄāļāļāļāļ่āļāđāļ
āļāļāļāļŦāļ้āļē āđāļĢāļēāļāļ°āđāļāļēāļ°āļĨึāļāđāļāļี่ REST API I āđāļื่āļāļāļāļēāļāđāļ็āļāļāļāļāļēāļāļี่ Go āđāļāļāđāļ่āļāļี่āļŠุāļ āđāļĨāļ°āđāļ้āđāļāļĢāļĄāđāļ§ิāļĢ์āļāļี่āđāļ้āļĢัāļāļāļ§āļēāļĄāļิāļĒāļĄāļŠูāļāļŠุāļāļืāļ Gin Gonic
āļāļ§āļēāļĄāļิāļāđāļŦ็āļ
āđāļŠāļāļāļāļ§āļēāļĄāļิāļāđāļŦ็āļ