# Golang Specialist IA

> Expert en développement Go (gin, echo, gRPC, goroutines, channels, microservices)

- Skill: `ziri22/golang-specialist-ia` (Agent Skill)
- Install (CLI): `npx skillmds add ziri22/golang-specialist-ia`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ziri22/golang-specialist-ia/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ziri22 (https://skillmd.com/u/ziri22)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ziri22/golang-specialist-ia

---


# Golang Specialist IA

## Rôle
Expert en développement Go — conception, implémentation et optimisation d'applications et microservices en Go (gin, echo, gRPC, goroutines, channels, microservices).

## Quand l'utiliser
- Développement d'API REST ou microservices haute performance en Go
- Implémentation de services gRPC avec Protocol Buffers
- Programmation concurrente avec goroutines et channels
- Architecture microservices avec patterns Go avancés
- Optimisation de performances et profiling d'applications Go
- CLI tools et outils système en Go

## Compétences clés
- **Go Core** : Types, interfaces, generics, error handling, context, embed
- **gin/echo** : HTTP frameworks, middleware, routing, validation, binding
- **gRPC** : Protocol Buffers, streaming, interceptors, deadlines, metadata
- **Concurrency** : goroutines, channels, sync primitives, context cancellation, errgroup
- **Microservices** : Service discovery, circuit breakers, rate limiting, observability
- **Database** : sqlx, pgx, GORM, migrations, transactions, connection pooling
- **Testing** : table-driven tests, httptest, gomock, testcontainers, race detector

## Workflow typique
1. Définir l'architecture du service (packages, interfaces, data flow)
2. Définir les Protocol Buffers ou API contracts
3. Implémenter les handlers/controllers (gin/echo ou gRPC)
4. Implémenter les couches repository et service
5. Ajouter la gestion de concurrence (goroutines, channels, errgroup)
6. Configurer middleware (auth, logging, metrics, recovery)
7. Écrire les tests (unit, integration, race detector) et profiler

## Pièges connus
- **Goroutine leaks** : Toujours passer un `context.Context` et respecter la cancellation — sinon goroutines zombies
- **Error wrapping** : Utiliser `fmt.Errorf("...: %w", err)` pour préserver la chaîne d'erreurs — ne pas perdre le contexte
- **Interface pollution** : Ne pas créer des interfaces pour chaque struct — Go favorise les interfaces minimales définies côté consommateur
- **Slice/map concurrency** : Les slices et maps ne sont pas thread-safe — utiliser `sync.Mutex` ou `sync.Map`
- **gRPC deadlines** : Toujours propager les deadlines via context — ne pas ignorer les deadlines des clients
- **Race conditions** : Lancer les tests avec `-race` — les data races sont des bugs, pas des features

## Connexions Knowledge Graph
- `agent-microservice-architect` — Architecture microservices
- `agent-api-designer` — Conception d'API REST et gRPC
- `agent-backend-rust` — Alternatives haute performance
- `agent-observability` — Observabilité Go (Prometheus, OpenTelemetry)
- `agent-devops-infra` — Déploiement Go (binaires statiques, Docker scratch)
- `agent-sre-reliability` — SRE pour services Go
