Bibliographie Domain Driven Design

Sections

Domain Driven Design

Domain-Driven Design. Tackling complexity in the Hearth of Software. Eric Evans

Domain-Driven-Design-Eric-Evans

L’ouvrage fondateur du DDD et sa référence, souvent nommé le “Blue Book”. Ce livre n’est pas forcément le plus digeste, mais son contenu est très profond et les exemples très bien choisis. Le chapitre sur les Bounded Context (Part 4, Chap 14) est vraiment à lire car c’est l’aspect novateur du DDD.

Domain Driven Design Quickly. Infoq

Domain-Driven-Design-Quickly-Infoq

Domain Driven Design Using Naked Objects. Dan Haywood

Domain-Driven-Design-Using-Naked-Objects-Dan-Haywood

J’observe les évolutions de ce framework et de cette approche depuis sa création il y a plus de 10 ans. J’ai toujours été fasciné et attiré par ce concept qui pose une contrainte très forte (la UI est complétement déduite du modèle objet du domaine) et qui donc “force” à aboutir à une domaine directement compréhensible par les utilisateurs finaux. A lire absolument.

Implementing Domain-Driven Design. Vaughn Vernon

Implementing-Domain-Driven-Design-Vaughn-Vernon

Un ouvrage qui traite des aspects très concrets du DDD, un bon complément au “Blue Book”

Patterns, Principles, and Practices of Domain-Driven Design

Patterns, Principles, and Practices of Domain-Driven Design

Analysis Patterns. Martin Fowler

Analysis-Patterns-Martin-Fowler

Un livre assez ancien mais toujours d’actualité qui montre des exemples concrets de solutions de plus en plus sophistiqués pour traiter des problèmes récurrents dans des domaines variés (observations et mesures, inventaires et comptabilité, etc.)

Introducing EventStorming

Introducing EventStorming

L’EventStorming est une technique incontournable pour explorer un domaine lors du démarrage d’un projet avec les experts de ce domaine.

Living Documentation. Cyrille Martraire

Living Documentation

Un excellent ouvrage de mon ami Cyrille Martraire sur les aspects documentations d’un logiciel, en lien bien sûr avec le DDD.


Behavior-Driven Development

BDD in Action

BDD in Action

Le BDD est l’approche complémentaire du DDD, en ce sens qu’un design, c-à-d une solution, n’est bonne que si elle est adaptée à l’usage qui en sera fait. Hors rien de mieux que le BDD pour définir cet usage !

Specification By Example. Gojko Adzic

Specification-By-Example-Gojko-Adzic

Un ouvrage “Jalon” qui a redéfinit cette vieille notion de spécification, le BDD en est une majeure partie.


Architectures

Patterns of Enterprise Application Architecture. Martin Fowler. Addison Wesley

Patterns-Of-Enterprise-Application-Architecture-Martin-Fowler

Un ouvrage assez ancien, plus forcément à jour sur certains styles architecturals (event sourcing, etc.) mais les patterns qui s’y trouve décrivent un nombre important de frameworks que l’on trouve assez fréquement (MVC, ORM, etc.)

Lean Architecture. James Coplien

Lean-Architecture-James-Coplien

Enterprise Integration Patterns. Gregor Hohpe, Bobby Woolf. Addison Wesley

Enterprise-Integration-Patterns-Gregor-Hohpe-Bobby-Woolf


Refactoring and Clean Code

Clean Code. Robert “Bob” Martin

Clean-Code-Robert-Martin

Refactoring. Martin Fowler

Refactoring-Martin-Fowler

Working Effectively with Legacy Code. Michael Feathers

Working-Effectively-With-Legacy-Code-Michael-Feathers

Pragmatic Programmer. Andrew Hunt

Pragmatic-Programmer-Andrew-Hunt

Code Complete. Steven McConnel

Code-Complete-Steven-MacConnel

Refactoring Databases. Scott Ambler

Refactoring-Databases-Steven-McConnell


User Interactions

Design of Everyday Things. Donald Norman.

Design-Of-Everyday-Things-Donal-Norman

Un des rares ouvrages qui m’a réellement marqué en m’enlevant des oeillères sur les objets avec lesquels j’interagis au quotidien. Un “must-read”.

Don’t Make Me Think. Steve Krug

Dont-Make-Me-Think-Steve-Krug

Un ouvrage plus pratique et concret que le précédent avec une application directe à la conception de pages web. Un bon complément.


Functional paradigm

Le paradigme fonctionnel semble éloigné de la programmation orienté-objet mais en pratique l’approche de la gestion d’état des langages fonctionnels permet une mise en oeuvre très proche du DDD, voir cet article du langage Clojure sur la gestion d’état.

Functional Programming for the Java Developers. Dean Wampler. O’Reilly’

Functional-Programming-For-The-Java-Developers-Dean-Wampler

Functional Programming for the Object-Oriented Programmer. Brian Marick

Functional-Programming-for-the-Object-Oriented-Programmer-Brian-Marick

Seven Languages In Seven Weeks. Bruce Tate. Pragmatic Programmers

Seven-Languages-In-Seven-Weeks

The Joy Of Clojure. Michael Fogus, Chris Houser. Manning. 2nd Ed.

Joy-Of-Clojure 2nd Edition

Un “must-read” qui m’a fait découvrir Clojure il y a quelques années, l’aspect introduction et pratique du langage est moins évidente que “Clojure Programming”, il apporte cependant le “pourquoi” de chaque aspect du langage et la philosophie derrière chaque élément.

Clojure Programming - Practical Lisp for the Java World

Clojure Programming - Practical Lisp for the Java World