Go — ce n'est pas seulement tendance, c'est efficace
\n\nAvez-vous déjà réfléchi à pourquoi de plus en plus de startups et de géants comme Google, Docker et Kubernetes choisissent Go (Golang) ? Il ne s'agit pas seulement de la vitesse de compilation. Go est un langage qui rend le complexe simple. Il est conçu pour les systèmes évolutifs, les microservices et les utilitaires en ligne de commande. Et surtout, Go possède une communauté incroyablement amicale et une multitude de projets open source sur GitHub.
\n\nDans cet article, nous n'allons pas énumérer des centaines de dépôts. Nous avons sélectionné 10 meilleurs dépôts Go qui vous seront réellement utiles dans votre travail. Des frameworks web puissants aux outils pratiques pour le développeur. Et oui, nous montrerons des exemples de code en Go pour que vous compreniez immédiatement comment cela fonctionne.
\n\nTop 10 des dépôts Go à fork
\n\n1. Gin — le framework web le plus rapide
\nDépôt : gin-gonic/gin
Si vous cherchez un framework web en Go qui ne ralentit pas et n'est pas surchargé de magie, Gin est votre choix. Il est plusieurs fois plus rapide que le net/http standard et propose un routeur pratique avec support des middleware.
Exemple de code :
\npackage main\n\nimport "github.com/gin-gonic/gin"\n\nfunc main() {\n r := gin.Default()\n r.GET("/hello", func(c *gin.Context) {\n c.JSON(200, gin.H{\n "message": "Bonjour, monde Go!",\n })\n })\n r.Run() // écoute sur le port 8080\n}\n\nGin est idéal pour les API REST et les microservices. Grâce à une communauté active, vous trouverez des milliers d'exemples et de plugins.
\n\n2. Cobra — créez des CLI comme un pro
\nDépôt : spf13/cobra
Tout outil Go qui se respecte doit avoir une CLI pratique. Cobra est la norme de facto pour créer des interfaces en ligne de commande. Il est utilisé par Docker, Kubernetes, Hugo et bien d'autres.
\n\nExemple de code :
\nvar rootCmd = &cobra.Command{\n Use: "myapp",\n Short: "Mon application géniale",\n Run: func(cmd *cobra.Command, args []string) {\n fmt.Println("Hello from myapp!")\n },\n}\n\nfunc main() {\n rootCmd.Execute()\n}\n\nCobra génère automatiquement l'aide, prend en charge les sous-commandes et les flags. Un outil indispensable si vous écrivez des utilitaires en Go.
\n\n3. Go Kit — boîte à outils pour microservices
\nDépôt : go-kit/kit
Lorsque votre application dépasse le monolithe, Go Kit vient à la rescousse. Ce n'est pas un framework, mais un ensemble de bibliothèques pour construire des microservices fiables : journalisation, métriques, circuit breaker, service discovery.
\n\nGo Kit suit les principes de l'architecture propre. Si vous voulez écrire du code prêt pour la production, c'est un must-have parmi les bibliothèques Go.
\n\n4. GORM — ORM pour ceux qui ne veulent pas écrire de SQL manuellement
\nDépôt : go-gorm/gorm
Travailler avec des bases de données en Go peut être concis. GORM est l'ORM le plus populaire qui transforme le travail avec PostgreSQL, MySQL, SQLite en un plaisir.
\n\nExemple de code :
\ntype User struct {\n ID uint\n Name string\n Age int\n}\n\nfunc main() {\n db, _ := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})\n db.AutoMigrate(&User{})\n\n db.Create(&User{Name: "Alexandre", Age: 30})\n}\n\nGORM gère les migrations, les hooks, l'eager loading et prend même en charge les transactions. Un excellent choix pour les applications web en Go.
\n\n5. Viper — gestion de configuration sans douleur
\nDépôt : spf13/viper
Les paramètres d'application sont un casse-tête éternel. Viper le résout une fois pour toutes. Il sait lire JSON, YAML, TOML, les variables d'environnement et même les configurations distantes depuis etcd.
\n\nExemple de code :
\nviper.Set