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.16  ·  Rating details ·  4,610 ratings  ·  235 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.16  · 
Rating details
 ·  4,610 ratings  ·  235 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
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
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
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.
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
Melika Barzegaran
Jun 25, 2020 rated it it was ok
Shelves: computer-science
I'd heard about domain-driven design and had read about that here and there, and I wanted to know more. So, I picked up this book.

Disappointingly, reading it was a very painful experience. Ideas were scattered and lacked focus. Examples were unnecessarily complicated and lacked enough context to be educational. Sentences were repeated and repeated again without adding much value. The whole idea of the book could be simply presented in a blog post.

If you're like me and want to know more about dom
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: software, owned, physical
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
Vlad Ardelean
Jun 16, 2021 rated it it was ok  ·  review of another edition
Shelves: ex-prio, tech, heavy
Far too long, generic to the point where it doesn't really say anything, ideas in it are not too far from trivial.

There are a lot of positive reviews for this book, and I started reading it because I saw them, and because I also saw recommendation for this book in a lot of other books that I read. However now that I finished it, I think it is the most overrated book I read.

So why am I so different from the majority here? Why do I consider this book to be a waste of one's time, when so many smart
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
Nov 05, 2019 rated it really liked it
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
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.
Jose  Seco Sanz
May 11, 2015 rated it really liked it
There is a lot of things to learn in here. Probably I should read it again.
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
Mar 30, 2021 rated it really liked it
The concepts are awesome but the book feels a bit outdated and hard to read.
Anyway for anyone interested, check out event storming, it really complements the DDD approach.
Silviu Novitchi
Feb 20, 2021 rated it really liked it
Contains plenty of real world examples on how the domain model design process should be done and who is involved. The main takeaway is that the domain is evolving (through refactoring) and deeper insights are discovered during the development lifecycle.
Vlad Ardelean
Jun 15, 2021 rated it it was ok
Far too long, generic to the point where it doesn't really say anything, ideas in it are not too far from trivial.

There are a lot of positive reviews for this book, and I started reading it because I saw them, and because I also saw recommendation for this book in a lot of other books that I read. However now that I finished it, I think it is the most overrated book I read.

So why am I so different from the majority here? Why do I consider this book to be a waste of one's time, when so many smart
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 16, 2014 rated it really liked it
Shelves: read-tech
Check out my blog for a more detailed review and summary of the book.

This book is a must read. Although I read it from cover to cover, I think it is more useful as a reference book, going back to it to find answers for specific questions.

I think you need some practical experience (and to have faced some of the problems this book is trying to solve) in order to get the most out of it. But this doesn’t mean juniors shouldn’t read it. Actually, it contains a lot of information that I wish I would h
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
Nov 26, 2016 rated it liked it
very valid concept
but, omg, so painful to read
I am not sure what is wrong with it, but I just couldn't finish it. It's boring, long-winded and just hard work...
I can't really recommended. I mean the concepts are all valid, but I'd rather go for a summary...

I am not sure this topic justifies 516 pages...

For those who are interested, this goes will with
Implementing Domain-Driven Design

And this seems to be a shorter summary (though I have not read it yet myself):
Domain-Driven Design Distilled
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
« previous 1 3 4 5 6 7 next »
topics  posts  views  last activity   
Pure Herbal Immunity Blend Reviews — Final Verdict 1 4 Apr 10, 2020 11:50AM  

Readers also enjoyed

  • Building Microservices: Designing Fine-Grained Systems
  • Clean Architecture
  • Implementing Domain-Driven Design
  • Test-Driven Development: By Example
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Refactoring: Improving the Design of Existing Code
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Patterns of Enterprise Application Architecture
  • Designing Data-Intensive Applications
  • Domain-Driven Design Distilled
  • Working Effectively with Legacy Code
  • Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
  • Effective Java
  • The Mythical Man-Month: Essays on Software Engineering
  • The Pragmatic Programmer: From Journeyman to Master
  • Monolith to Microservices: Sustaining Productivity While Detangling the System
  • Head First Design Patterns
  • Extreme Programming Explained: Embrace Change (The XP Series)
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

This collection is short, sweet and to-the-point. Below we have collected the most popular 2021 books as sorted by your fellow readers'...
59 likes · 10 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…