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

The founding and reference book of DDD, often called the “Blue Book”. This book is not necessarily the most digestible, but its content is very deep and the examples very well chosen. The chapter on the Bounded Context (Part 4, Chap 14) is really worth reading because it is the most innovative aspect of 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

I have been observing the evolution of this framework and approach since its creation more than 20 years ago. I’ve always been fascinated and attracted by this concept which poses a very strong constraint (the UI is completely deduced from the domain model) and which therefore “forces” to end up with a domain directly understandable by the end users (here is the slides of an experience feedback talk about Naked Object).

Implementing Domain-Driven Design. Vaughn Vernon

Implementing-Domain-Driven-Design-Vaughn-Vernon

A book that deals with very concrete aspects of DDD, a good complement to the “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

A rather old but still relevant book that shows concrete examples of increasingly sophisticated solutions to recurring problems in various fields (observations and measurements, inventories and accounting, etc.)

Introducing Event Storming

Introducing EventStorming

EventStorming is an essential technique for exploring a domain at the start of a project with experts in that domain.

Living Documentation. Cyrille Martraire

Living Documentation

An excellent book on the documentation aspects of a software, related to DDD of course.

Data and Reality. William Kent

Data and reality

Data and Reality book is about the fundamental principles of data modeling and how data and reality are related. The content is timeless and technology independent. The concepts of naming and identification alone are a must-have for anyone that needs to models data.


Organization and Management

Team Topologies, Matthew Skelton, Manuel Pais

Team Topologies


Behavior-Driven Development

BDD in Action, John Ferguson Smart

BDD in Action

BDD is the complementary approach to DDD, in the sense that a design, i.e. a solution, is only good if it is adapted to the use that will be made of it. And there is nothing better than BDD to define this usage!

Specification By Example. Gojko Adzic

Specification-By-Example-Gojko-Adzic

A book that redefined this old notion of specification, the BDD is a major part of it.


Architectures

Release It! 2nd Edition. Michael Nygard. The Pragmatic Programmers

Release It! Michael Nygard

A reference book on software architecture and its resilience with the famous stability patterns (as well as anti-patterns) described in this book, the production incident story telling by Michael Nygard is excellent.

Designing Data-Intensive Applications. Martin Kleppmann

Designing Data Intensive Applications

A reference book on the technical mechanisms and issues of handling data at scale, in a distributed manner and from first principles.

Software Architecture: The Hard Parts, Neal Ford

Software Architecture: The Hard Parts

Fundamentals of Software Architecture: An Engineering Approach, Neal Ford

Patterns of Enterprise Application Architecture. Martin Fowler. Addison Wesley

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

A rather old book, not necessarily up to date on some architectural styles (event sourcing, etc.) but the patterns in it describe a large number of frameworks that are found quite frequently (MVC, ORM, etc.)

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

One of the few books that really made an impact on me by taking the blinders off about the objects I interact with on a daily basis. A “must-read”.

Don’t Make Me Think. Steve Krug

Dont-Make-Me-Think-Steve-Krug

A more practical and concrete book than the previous one with a direct application to web page design. A good complement.


Functional paradigm

The functional paradigm seems far from object-oriented programming but in practice the state management approach of functional languages allows an implementation very close to DDD, see this Clojure language article on state management.

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

A “must-read” that made me discover Clojure a few years ago, the introduction and practical aspect of the language is less obvious than “Clojure Programming”, it brings however the “why” of each aspect of the language and the philosophy behind each element.

Clojure Programming - Practical Lisp for the Java World

Clojure Programming - Practical Lisp for the Java World