Go : évitez de lier votre code à GitHub
Original : Don't couple your Go code to GitHub
Pourquoi c'est important
Ce pattern simple évite une dépendance d'infrastructure qui peut bloquer des migrations entières.
Un développeur Go explique pourquoi coupler ses imports à github.com crée une dépendance coûteuse envers un hébergeur. La solution : utiliser un domaine personnalisé comme go.uber.org pour abstraire l'emplacement réel du dépôt.
En Go, les imports incluent directement l'URL d'hébergement du code — par exemple `github.com/user/projet`. Pratique pour la distribution, mais piégeux : si on migre vers GitLab ou Azure DevOps, il faut modifier tous les imports dans le code source. L'auteur cite un cas concret d'entreprise contrainte d'opérer simultanément sur GitHub, GitLab et Azure DevOps, faute de pouvoir migrer sans effort colossal — et donc de payer trois plateformes en parallèle.
La solution proposée : un sous-domaine personnalisé (ex. `go.iain.rocks`) configuré via Nginx et une balise HTML `<meta name="go-import">`. Le client Go reçoit la redirection transparente vers le vrai dépôt, et les utilisateurs ne voient rien si l'hébergeur change. L'auteur fournit des configs Nginx et HTML complètes, prêtes à l'emploi. Il note que Uber (`go.uber.org`) et MongoDB (`go.mongodb.org`) appliquent déjà cette pratique. Selon lui, toute équipe commerciale utilisant Go devrait adopter ce pattern pour ses bibliothèques internes.