Go with the Domain : Création de logiciels métier modernes en Go
298 pages
French
PDF
4.5

Go with the Domain : Création de logiciels métier modernes en Go

Go with the Domain : Création de logiciels métier modernes en Go

Auteur :

Année :

Résumé :

Introduction

Le livre « Go with the Domain: Building Modern Business Software in Go » (auteurs : Robert Laszczak, Miłosz Smółka, 2021, 298 pages) n'est pas simplement un énième tutoriel sur la syntaxe de Go. C'est un guide pratique pour appliquer le Domain-Driven Design (DDD) et les principes de la Clean Architecture dans l'écosystème Go. À sa sortie, le livre a été l'un des premiers à relier systématiquement la philosophie de la conception pilotée par le domaine avec un Go idiomatique, en évitant les abstractions inutiles et le « sur-ingénierie ». Il s'adresse aux développeurs qui écrivent déjà en Go et souhaitent passer d'un « code qui fonctionne simplement » à des applications métier maintenables, testables et évolutives.

De quoi parle ce livre

Le livre est construit autour d'un exemple concret : un système de gestion de commandes (order management system). Les auteurs guident le lecteur à travers toutes les étapes : de l'identification des contextes délimités (Bounded Contexts) et de la modélisation des événements du domaine, à l'implémentation des repositories, services et couches de transport (HTTP, gRPC, files de messages). Une attention particulière est portée au caractère idiomatique du code : les auteurs montrent comment utiliser les interfaces de Go pour définir des ports et des adaptateurs, comment éviter le « modèle anémique » et comment organiser correctement les packages pour ne pas violer les limites du domaine. Chaque chapitre contient des exemples pratiques, des diagrammes et des comparaisons entre du code « mauvais » et « bon ».

Pour qui est ce livre

  • Développeurs Go avec au moins 1 an d'expérience, souhaitant approfondir l'architecture.
  • Architectes logiciels cherchant des modèles concrets pour implémenter le DDD en Go.
  • Tech leads et team leads responsables de la conception de microservices.
  • Développeurs passant d'autres langages (Java, C#) à Go et souhaitant appliquer le DDD sans « frameworks lourds ».

Ce que le lecteur apprendra

  • Les bases du DDD appliquées à Go : Entity, Value Object, Aggregate, Domain Event, Repository, Factory.
  • La Clean Architecture (architecture hexagonale) en Go : comment séparer le domaine, l'application et l'infrastructure.
  • Les tests de la logique métier sans mocks, en utilisant des tests table-driven et des interfaces.
  • La gestion des transactions et de la concurrence dans le contexte du DDD (pattern Unit of Work).
  • L'intégration avec des systèmes externes via des ports et adaptateurs (HTTP, gRPC, Kafka).
  • L'organisation du code dans un monorepo et les modules Go.
  • La gestion des erreurs dans le domaine : création de types d'erreurs personnalisés, erreurs contextuelles.
  • L'Event Sourcing et le CQRS — introduction de base et exemple d'implémentation.

Points forts

  • Orientation pratique : le code du livre peut être immédiatement adapté à vos propres projets.
  • Caractère idiomatique : les auteurs n'imposent pas un style Java, mais montrent à quoi ressemble le DDD « à la manière de Go » (petites interfaces, composition, dépendances explicites).
  • Structure claire : chaque chapitre se termine par un résumé et une liste de « points à retenir ».
  • Accent sur les tests : un chapitre entier est consacré aux tests du domaine et de l'infrastructure.
  • Modernité : le livre utilise les modules Go, context.Context, middleware, generics (bien qu'avant la sortie de Go 1.18 — mais les auteurs donnent des conseils d'adaptation).

À qui est-il recommandé

Le livre est une lecture obligatoire pour tous ceux qui construisent en Go des systèmes métier complexes (ERP, CRM, fintech, logistique, marketplaces). Il sera utile aussi bien à ceux qui commencent tout juste à mettre en œuvre le DDD qu'aux praticiens expérimentés souhaitant voir le « juste milieu » entre un DDD pur et le pragmatisme de Go. Si vous en avez assez des « services fourre-tout » et que vous voulez écrire un code facile à modifier pour répondre aux nouvelles exigences métier, ce livre est fait pour vous.

Recommendations