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.
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).
A book that deals with very concrete aspects of DDD, a good complement to the “Blue Book”.
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.)
EventStorming is an essential technique for exploring a domain at the start of a project with experts in that domain.
An excellent book on the documentation aspects of a software, related to DDD of course.
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.
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!
A book that redefined this old notion of specification, the BDD is a major part of it.
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.
A reference book on the technical mechanisms and issues of handling data at scale, in a distributed manner and from first principles.
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.)
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”.
A more practical and concrete book than the previous one with a direct application to web page design. A good complement.
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.
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.