Goodreads helps you keep track of books you want to read.
Start by marking “Domain-Driven Design: Tackling Complexity in the Heart of Software” as Want to Read:
Domain-Driven Design: Tackling Complexity in the Heart of Software
Enlarge cover
Rate this book
Clear rating
Open Preview

Domain-Driven Design: Tackling Complexity in the Heart of Software

4.15  ·  Rating details ·  4,096 ratings  ·  189 reviews
"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving und ...more
Hardcover, 560 pages
Published August 20th 2003 by Addison-Wesley Professional
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about Domain-Driven Design, please sign up.
Popular Answered Questions

Community Reviews

Showing 1-30
Average rating 4.15  · 
Rating details
 ·  4,096 ratings  ·  189 reviews

More filters
Sort order
Start your review of Domain-Driven Design: Tackling Complexity in the Heart of Software
Jan 15, 2015 rated it really liked it
This book is impossible to rate.

The ideas in this book are incredibly useful, and I am grateful to the author for sharing them with the software development community. In this perspective, not reading this book borders on professional negligence.

Unfortunately, I find the writing practically impenetrable. There are so many quaint and opaque verbs and adjectives that never get defined or even justified. Does "tightening" make a model "richer" and/or "deeper"? What about "enriching"? Is either one
Alexander Petrov
Jun 15, 2013 rated it it was amazing
Amazing book!

Every programmer must read it! As well as Pragmatic Programmer by Dave Thomas and Andy Hunt and Refactoring by Martin Fowler.

There are many books tells you to separate domain logic from other parts like UI and Persitence, because it is the most valuable part of application and you should be able to make changes as quick, as your business changes and as your understanding of domain improves.

But! There are very few books about how to design domain layer of your application!

This is th
Barbara Krein
Oct 30, 2019 rated it it was amazing
A good book to read for any coder. The ratio of time spent reading vs. writing is well over 10:1.
Oct 21, 2012 rated it it was amazing
While reading this book I complained a lot about the author repeating the same ideas supported by different examples. However, I really enjoyed reading it and I feel I gained a lot of knowledge about designing software applications. Of course, this knowledge is purely theoretical, but we all have to start somewhere.

One thing I really appreciated is that the author doesn’t isolate the design and development part from the human interaction. One has to know the team members’ skills and employ them
Jun 12, 2018 rated it did not like it
It is a quite famous book but I did not enjoy it. I finished the book just because we had been reading it together with my colleagues. There are several interesting poinst but otherwise it is too long. Indeed, summary at InfoQ is available. ...more
This book is a fundamental one in the shelf of every software developer who tends overcome the difficulty of creating complex software in a maintainable fashion.
Sebastian Gebski
Feb 03, 2013 rated it it was amazing
Actually, it's the 2nd time I've read that book. After the 1st time I was quite happy with what I've received - I've generally agreed to author's approach, even more: I've found it rather obvious ("so not a big deal") - I'd do pretty much the same in the example cases, I agree that those design decisions are more reasonable, etc.

Some time has passed, I've discussed DDD with several people on several occassions and I think now I got the value of this book: author does not only gives you the examp
Oct 28, 2009 rated it it was amazing
Shelves: own, nonfiction, tech
Great, great book. However, you should probably have at least some understanding of agile, design patterns, and refactoring before reading this book if you truly want to get the most out of it. The book talks about using model-driven design to create a domain model and ubiquitous language that everyone in the company can leverage - a topic that seems to be getting more attention as of late.

Some of the topics are pretty abstract, and I would have liked to see some more code and concrete examples
Feb 02, 2016 rated it really liked it
Please take this with grain of salt; most of my reading of this book was fast reading.

What I like about this book is that there is a genuine trial to bring examples to the various concepts. This is done throughout the book.

What I don't like:
- Too much repetition and too verbose
- I feel that the statements are structured in a way that makes it really hard for fast reading
- Even with examples, sometimes I feel it's too much theory
Erika RS
Dec 28, 2012 rated it really liked it
Shelves: owned, physical, software
See elsewhere for my more detailed summary.

The short summary is that Domain-Driven Design is a great book for any programmer or software designer who wants to deepen their ability to model application domains. Evans describes why domain modelling is important and sets out a number of patterns for achieving better models. He has a good grasp of real world complexities and, because of that, insists that a model must be implementable if it is to be successful. Any overlap between the model and the
Aug 23, 2017 rated it it was ok
Shelves: it
Ironic how a book that advocates concise documentation and diagrams over text looses itself in way too much narrative. The ideas in this book are good, but it could have easily been have as long. It keeps on repeating itself in long paragraohs, full of vague terms.
The used examples are realistic (all coming from real projects), but sometimes lacked context to understand the reasoning that was applied to apply the patterns.
Sandy Maguire
Jul 11, 2020 rated it did not like it
For some reason this book is greatly beloved in programming circles. I can't tell if that's because the people doing the beloving are die-hard Java Enterprise programmers, or if I'm just missing something here. But I think it's the former.

Domain-Driven Design is an excessively dry, boring book whose main thesis seems to be "make sure everybody agrees on what terminology is being used." What could have been this one sentence is instead 650 pages, chocked full of UML diagrams and insipid discussio
Jan 29, 2010 rated it it was amazing
Been reading this on and off for a while now. I would put this on the "must read" shelf of anyone involved in the development side of software engineering, including programmers, designers, architects, even development managers. It presents a lot of important points and topics that some developers sort of know or understand but never clearly defined and put forth. There are best practices on patterns, approaches to design and development, architecture, and communication.

It takes OO development u
Apr 12, 2012 rated it really liked it
Excellent software engineering book. It presents a working strategy for writing and organizing software code in classes and packages in a clean and usable environment. The book presents a "common language" concept that improves communication between team members and between the team and stake holders. It presents strategies for managing code by associating class names and packages with specific functionalities, proving and common understanding of what-goes-where for a team working with domain dr ...more
Miloš Milivojević
Initially I decided not to write a review since I found a bunch of people who shared my impressions of the book and whose reviews put those impressions to words in a far more eloquent and analytical manner than I ever could but in the end it feels a shame not to say anything.

All in all, DDD was in many ways a great read, worthy of its highly lauded cult status - the ideas it presented, especially at the time of its writing, were almost groundbreaking. To top it off, the methodology it proposes s
Jose  Ignacio Seco Sanz
May 11, 2015 rated it really liked it
Shelves: technical, to-re-read
There is a lot of things to learn in here. Probably I should read it again.
Rahul Gupta
Nov 29, 2018 rated it it was ok
I didn't like the author's style of writing/explaining.
Things were repeated and even after reading more than a hundred pages, the only thing I understood was that, developers and software architects should use domain language to discuss about the project, build diagrams and, write code. At the same time, domain experts should talk code.
Having the common language between developers and domain experts reduces the amount of errors while developing and the overall product becomes better.

The book fai
Rezaul Karim Sajib
Oct 21, 2018 rated it really liked it
This book is the bible for the software engineers. It' clearly changes the thinking perspective of every software engineer. Even though it is a "must read"book for developers who are willing to implement the domain driven design in their application, but in my opinion, others can also hugely benefitted from this book. I cannot give full 5 stars because this book can have more elaborated examples and it is hard to understand some of the concepts for less experienced developers. Nevertheless, I hi ...more
Sergey Kislak
Apr 17, 2020 rated it really liked it
Classic book on ddd
Pattens and methods for the software architecture paradigm
Dec 16, 2018 rated it liked it
Shelves: computer-science
A lot of the concepts from this book should be obvious to an experienced software developer. Despite this, it was an important read.

The book is too lengthy, so I scanned it from time to time. I also supported my reading with browsing the ideas from the book on the internet.
Rafal Piekarski
Jun 28, 2013 rated it really liked it
Shelves: i-own
It took me more than a year to read this book. It was tough. This book is more like a directory of patterns and I believe that you shouldn't use all of them will every project.

I have heard before reading this book about many cases when implementing domain driven design failed. Especially in the Ruby world in which I write most of my daily code. But I believe the true reason of the failure was that people were trying to use all ideas from the DDD. But the book written by Eric Evans in final chap
Nov 14, 2008 rated it it was amazing
Shelves: computers
This is one of the best books on software design and architecture currently available. This has the potential to be as forever mind-changing as Design Patterns, POSA, or PoEAA. The book talks about an interesting way to design and architect software: That of letting the domain drive the results. The books takes traditional OOP approaches and turns them on it's ear. By making the underlying focus of the application the actual objects (and their relationships/lifecycle) the right things get built ...more
Xavier Shay
May 25, 2011 rated it really liked it
Long (I'm starting to feel that way about all programming books...), but worthwhile. Key takeaways for me:
- If business people use terms that don't appear in your model, that's bad.
- "Make implicit concepts explicit." Important business rules should not be hidden away in conditionals inside an unrelated object.
- Constrain relationships as much as possible. For instance a has_many should only be bidirectional if it is really necessary. A way around it is to use repositories to access the informat
Jan 27, 2019 rated it it was amazing
One of those fundamental books on software design

The book has three distinct parts:
1. Philosophy - on models and model-driven design
2. Tactical Design - on implementing and evolving object models
3. Strategic Design - on handling large object models

The Philosophy and Strategic Design parts are timeless and by far the most important.

Tactical Design is merely one way of applying the philosophy to object-oriented software design. It's a starting point, rather than a silver bullet, so you'll have to
Apr 19, 2016 rated it really liked it
Shelves: software
Domain-Driven Design is a book that was recommended to my several times. I think that the translation between these models and some technical implementations will always be a challenge. Though, I can't recommend this book enough to anyone in the technical and non-technical software business.
Kiril Kirilov
Aug 22, 2011 rated it it was amazing
Shelves: sd
This book contains some interesting conceptions/terms. Like - Entity, Value Object, Closure of Operations, Repository, side effect free function, Core Domain, Bounded Context.
May 03, 2014 rated it really liked it
A must read book for any serious developer.
Bayram Üçüncü
Feb 25, 2015 rated it it was amazing
Excellent book to learning complex software development solutions. I recommand it. This book does not contain a code based application.
Eduards Sizovs
Mar 23, 2015 rated it it was amazing
This book will change the way you think about software development forever
« previous 1 3 4 5 6 next »
topics  posts  views  last activity   
Pure Herbal Immunity Blend Reviews — Final Verdict 1 2 Apr 10, 2020 11:50AM  

Readers also enjoyed

  • Working Effectively with Legacy Code
  • Patterns of Enterprise Application Architecture
  • Refactoring: Improving the Design of Existing Code
  • Implementing Domain-Driven Design
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Building Microservices: Designing Fine-Grained Systems
  • Test Driven Development: By Example
  • Clean Architecture
  • Domain-Driven Design Distilled
  • The Pragmatic Programmer: From Journeyman to Master
  • Growing Object-Oriented Software, Guided by Tests
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
  • Extreme Programming Explained: Embrace Change (The XP Series)
  • Effective Java
  • Code Complete
  • Refactoring to Patterns
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »

News & Interviews

In most historical romances, love and marriage go together like...well, a horse and carriage. But what if the girl part of the girl-meets-boy...
21 likes · 12 comments
“The heart of software is its ability to solve domain-related problems for its user.” 5 likes
“A model is a selectively simplified and consciously structured form of knowledge.” 1 likes
More quotes…