Développement pratique de logiciels avec Golang
554 pages
French
PDF
4.5

Développement pratique de logiciels avec Golang

Développement pratique de logiciels avec Golang

Auteur :

Année :

Résumé :

Introduction

Le livre «Hands-On Software Engineering with Golang» (2020, 554 pages) d'Achilleas Anagnostopoulos n'est pas une énième introduction à la syntaxe de Go, mais un guide pratique approfondi pour construire des systèmes logiciels complexes, évolutifs et maintenables en langage Go. Contrairement à de nombreux livres axés sur les bases, cet ouvrage se concentre sur les pratiques d'ingénierie : architecture, conception, test, déploiement et surveillance. Il est idéal pour ceux qui connaissent déjà Go et souhaitent passer au niveau de développeur senior ou d'architecte.

De quoi parle le livre

Le livre est construit autour du développement d'une application réelle — un système d'analyse de liens (link graph). Tout au long des chapitres, l'auteur applique systématiquement les principes de la conception pilotée par le domaine (DDD), construit une architecture de microservices, utilise gRPC pour la communication inter-services, intègre la conteneurisation (Docker, Kubernetes) et configure des pipelines CI/CD. Chaque chapitre est une étape complète qui peut être immédiatement appliquée en pratique.

Les thèmes principaux :

  • Patrons architecturaux : DDD, CQRS, Event Sourcing, architecture hexagonale.
  • Microservices : conception, communication (gRPC, RabbitMQ), orchestration.
  • Test : unitaire, d'intégration, de bout en bout, test basé sur les propriétés.
  • CI/CD : configuration de pipelines, tests et déploiement automatisés.
  • Surveillance et observabilité : journalisation, métriques, traçage (OpenTelemetry).
  • Performance : profilage, benchmarking, optimisation.

Pour qui est ce livre

Le livre s'adresse aux développeurs Go expérimentés (au moins 1 à 2 ans d'expérience) qui souhaitent approfondir la conception de systèmes complexes. Il sera également utile aux architectes, chefs d'équipe et à tous ceux qui passent de l'écriture d'utilitaires simples à la construction d'applications de qualité production. Les débutants en Go pourraient trouver le livre difficile, car l'auteur n'explique pas la syntaxe de base et suppose une connaissance du langage.

Ce que le lecteur apprendra

  • Comment appliquer le DDD pour identifier les bounded context et les agrégats.
  • Comment construire des microservices avec gRPC et des files d'attente asynchrones.
  • Comment implémenter CQRS et Event Sourcing en Go.
  • Comment écrire des tests à différents niveaux et utiliser le test basé sur les propriétés.
  • Comment conteneuriser des applications et les déployer dans Kubernetes.
  • Comment configurer le CI/CD avec GitHub Actions ou GitLab CI.
  • Comment profiler et optimiser les performances des applications Go.
  • Comment mettre en place l'observabilité : journalisation, métriques (Prometheus) et traçage (Jaeger).

Points forts

Le principal atout du livre est son orientation pratique. Chaque concept est immédiatement étayé par du code exécutable et modifiable. L'auteur ne se contente pas de répéter la théorie, il montre comment prendre des décisions architecturales et quels compromis elles impliquent. Le code sur GitHub est accompagné de commentaires détaillés. Un autre avantage est son actualité : le livre a été publié en 2020 et la plupart des approches (gRPC, Kubernetes, OpenTelemetry) restent des standards de l'industrie.

Les chapitres sur les tests et le CI/CD méritent une mention spéciale — ils fournissent des recettes prêtes à l'emploi qui peuvent être immédiatement intégrées dans n'importe quel projet. Le livre apprend non seulement à écrire du code, mais à penser au système dans son ensemble : des exigences à l'exploitation.

À qui est-il recommandé

Je recommande ce livre à tous ceux qui souhaitent passer de l'écriture de « scripts » en Go à la création de systèmes industriels. Il sera utile aussi bien aux développeurs individuels qu'aux équipes qui adoptent Go en production. Si vous avez déjà lu «The Go Programming Language» ou «Concurrency in Go» et souhaitez aller plus loin — ce livre sera une excellente prochaine étape.

Sur le site PythonLib, le livre est disponible pour consultation.

Recommendations