Erreurs Go : sentinel errors, error structs ou fmt.Errorf — comment choisir
Trois patterns d'erreurs Go expliqués depuis un cas concret de code review sur ClaudeGate. Quand créer une sentinel error, une error struct, ou se contenter de fmt.Errorf.
Retours d'expérience, problèmes et solutions
Trois patterns d'erreurs Go expliqués depuis un cas concret de code review sur ClaudeGate. Quand créer une sentinel error, une error struct, ou se contenter de fmt.Errorf.
Faire remonter les erreurs depuis les goroutines, collecter tous les échecs d'un batch, et survivre aux panics sans crasher le programme. Les patterns indispensables pour du code concurrent robuste.
Maîtriser les channels Go : bufférisé vs non bufférisé, select, fan-out, fan-in et worker pool. Les patterns indispensables pour faire communiquer vos goroutines sans race condition.
Apprendre le parallélisme Go depuis zéro : goroutines, sync.WaitGroup, le piège classique des closures en boucle et le race detector. Avec un exemple concret — 10 URLs en 1s au lieu de 10s.
La distinction concurrence vs parallélisme expliquée avec une analogie simple, et comment Go + Event Sourcing / CQRS tirent parti des deux : aggregate single-writer, fan-out de projections, pipeline avec backpressure.
Quatre mots qu'on mélange tout le temps. Ce qu'ils veulent dire précisément, comment Go les exprime, et comment synchrone/asynchrone et concurrent/parallèle s'articulent ensemble.
Les vraies ressources, les pièges mentaux, les conventions et un chemin d'apprentissage concret pour apprendre Go quand on vient de PHP, Python ou JavaScript.
Un script Bash qui affiche les quotas Claude Code en temps réel dans la status bar — contexte, session, quotas hebdo. Zéro interruption de flux.
Comment écrire des tests unitaires pour un script Bash de prod sans framework externe. Pattern de mocking, isolation des fonctions, assertions lisibles.
Comment recevoir un email à chaque commentaire sur un blog PHP avec PHPMailer, Gmail SMTP et sans Composer. Installation manuelle, config sécurisée, pattern best-effort.