Your Amazon Prime 30-day FREE trial includes:
| Delivery Options | ![]() |
Without Prime |
|---|---|---|
| Standard Delivery | FREE | From £2.99* |
| Premium Delivery | FREE | £3.95 |
| Same-Day Delivery (on eligible orders over £20 to selected postcodes) Details | FREE | £5.99 |
Unlimited Premium Delivery is available to Amazon Prime members. To join, select "Yes, I want a free trial with FREE Premium Delivery on this order." above the Add to Basket button and confirm your Amazon Prime free trial sign-up.
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, you will be charged £95/year for Prime (annual) membership or £8.99/month for Prime (monthly) membership.
Buy new:
£52.56£52.56
FREE delivery:
Saturday, Jan 13
in the UK
Dispatches from: Amazon Sold by: Amazon
Buy used £39.19
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet or computer – no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Domain-Driven Design: Tackling Complexity in the Heart of Software Hardcover – Illustrated, 11 Sept. 2003
Purchase options and add-ons
Incorporate effective domain modeling into the software development process
Software design thought leader and founder of Domain Language, Eric Evans, provides a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining system design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software modeling and development.
- Domain Model: Part I outlines the goals of domain-driven development, defines terms, and gives an overview of the implications of using the domain model to drive communication and design
- Model-Driven Design: Part II condenses a core of best practices in object-oriented domain modeling into a set of basic building blocks and focuses on the kinds of decisions that keep the model and implementation aligned with each other, each reinforcing the other’s effectiveness
- Refactoring: Part III delves into modeling principles that can guide choices along the way, and techniques that help direct the search
- Strategic Design: Part IV explores a triad of principles that apply to the system as a whole: context, distillation, and large-scale structure
Throughout the book, discussions are illustrated not with over-simplified, “” problems, but with realistic examples adapted from actual projects. With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.
“The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers―it is a future classic.”
―Ralph Johnson, author of Design Patterns
From the Back Cover
“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 understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique.
“The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers―it is a future classic.”
― Ralph Johnson, author of Design Patterns“If you don’t think you are getting value from your investment in object-oriented programming, this book will tell you what you’ve forgotten to do.
“Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion.”
― Dave Collins, author of Designing Object-Oriented User Interfaces“Eric weaves real-world experience modeling―and building―business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric’s descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field.”
― Luke Hohmann, author of Beyond Software Architecture"This book belongs on the shelf of every thoughtful software developer."
--Kent Beck
"What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important."
--Kyle Brown, author of Enterprise Java™ Programming with IBM® WebSphere®
The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process.
Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development.
Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:
- Getting all team members to speak the same language
- Connecting model and implementation more deeply
- Sharpening key distinctions in a model
- Managing the lifecycle of a domain object
- Writing domain code that is safe to combine in elaborate ways
- Making complex code obvious and predictable
- Formulating a domain vision statement
- Distilling the core of a complex domain
- Digging out implicit concepts needed in the model
- Applying analysis patterns
- Relating design patterns to the model
- Maintaining model integrity in a large system
- Dealing with coexisting models on the same project
- Organizing systems with large-scale structures
- Recognizing and responding to modeling breakthroughs
With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.
About the Author
Eric Evans is the founder of Domain Language, a consulting group dedicated to helping companies build evolving software deeply connected to their businesses. Since the 1980s, Eric has worked as a designer and programmer on large object-oriented systems in several complex business and technical domains. He has also trained and coached development teams in Extreme Programming.
- ISBN-100321125215
- ISBN-13978-0321125217
- Edition1st
- PublisherAddison-Wesley Professional
- Publication date11 Sept. 2003
- LanguageEnglish
- Dimensions18.8 x 3.56 x 24.26 cm
- Print length560 pages
Frequently bought together

What do customers buy after viewing this item?
A model is a selectively simplified and consciously structured form of knowledge.Highlighted by 1,552 Kindle readers
The heart of software is its ability to solve domain-related problems for its user.Highlighted by 1,417 Kindle readers
If sophisticated domain experts don’t understand the model, there is something wrong with the model.Highlighted by 1,337 Kindle readers
From the brand
-
Addison-Wesley is a premiere publisher of books and eBooks for those working with technology.
This includes resources for programmers, developers, administrators, data scientists and engineers, team managers, students, and more.
-
Who are our authors?
Our authors are the creators, innovators, and thought leaders in computer science and technology including Donald Knuth, Bjarne Stroustrup, Brendan Gregg, Martin Fowler, Robert C. Martin.
Are our books for professionals only?
Our catalogue includes tutorials, references, guides, and deep dives for all levels, including never haven written a line of code to being in the industry for 40+ years and wanting to upskill.
Why Choose Addison Wesley?
We have been publishing the leading texts on computer science for decades and our titles appear on numerous "most recommended" lists.
-
-
Signature Series
Books in the series are personally chosen by expert advisors who are proud to put their signatures on the covers.
-
Professional Computing Series
Brian W. Kernighan created this series to provide serious programmers & networking professionals with practical reference books.
-
Professional Scrum Series
Deep insights into overcoming the challenges that both teams and organizations face as they seek to reap the benefits of agility.
-
Robert C. Martin Series
For software developers, team-leaders, business analysts & managers who want to increase their skill to the level of a Master Craftsman
-
Data & Analytics Series
Practical knowledge for solving problems & answering questions with data with a focus on infrastructure, algorithms and visualization.
-
The C++ In-Depth Series
Bjarne Stroustrup designer of C++ selected this collection to provide programmers with reliable information on C++ programming language
From the Publisher
|
|
|
|
|
|
|---|---|---|---|---|---|
| Domain Storytelling | Domain-Driven Design Distilled | Domain-Driven Design | Implementing Domain-Driven Design | Strategic Monoliths and Microservices | |
| Description | By telling and visualizing stories, domain experts and team members make business processes and domain knowledge tangible, enabling everyone to understand the relevant people, activities, and work items. | Concise, readable, and actionable guide to the basics of DDD: What it is, what problems it solves, how it works, and how to quickly gain value from it. | Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. | Building on Eric Evans’ seminal book, Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations. | Helps business decision-makers and technical team members clearly understand their strategic problems through collaboration and identify optimal architectural approaches. |
| What Will You Learn | The methods easy pictographic language, scenario-based modeling techniques, workshop format, and relationship to other modeling methods and how it can solve many common problems. | Each core DDD technique for building better software. Never buries you in detail–it focuses on what you need to know to get results. | Design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. | Practical DDD techniques through examples from familiar domains and how to use DDD within diverse architectures, including Hexagonal, SOA, Rest, CQRS, Event-Driven, and Fabric/Grid-Based. | How to construct well-designed monoliths that are maintainable and extensible, and gradually redesign and reimplement even the most tangled legacy systems into truly effective microservices. |
Product details
- Publisher : Addison-Wesley Professional; 1st edition (11 Sept. 2003)
- Language : English
- Hardcover : 560 pages
- ISBN-10 : 0321125215
- ISBN-13 : 978-0321125217
- Dimensions : 18.8 x 3.56 x 24.26 cm
- Best Sellers Rank: 72,775 in Books (See Top 100 in Books)
- 9 in Software Design (Books)
- 29 in Design Pattern Programming
- 32 in Computer Databases (Books)
- Customer reviews:
About the author

Eric Evans is a thought leader in software design and domain modeling. The founder of Domain Language and author of Domain-Driven Design, he recently founded a modeling community where those interested in domain modeling can come together to learn and discuss effective practices. He’s worked on successful Java and Smalltalk projects in fields including finance, shipping, insurance, and manufacturing automation.
Eric looks for opportunities to help organizations to get more value from their software development efforts by connecting technical thinking with business thinking—and developing supple domain models that form the heart of software applications. He conducts workshops and coaches teams on strategic design and domain modeling. He aslo, mentors teams to smoothly mesh design and process best practices and bring those techniques to bear on effectively delivering core value.
For information on the trainings Eric and his staff provide, visit his website at www.domainlanguage.com.
Customer reviews
Customer Reviews, including Product Star Ratings, help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyses reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from United Kingdom
There was a problem filtering reviews right now. Please try again later.
I’ve now read it once and know I will be reading it cover to cover again. For me it is the right place to start learning about DDD but as Evans admits himself it perhaps lacks some practical guidance on how to go about actually doing DDD for real, in respect to the implementation of software that is as this book is about a philosophy, not technical details. My advice is to try and read it as fluently as it is written, and it is very fluently written, and don’t worry too much that all of its detail is not going in. As I said, this is a difficult subject. Once you’ve read it, read one of the books that takes the material and treats it in a less formal way but a more practical hands on way, I’m doing that right now, then read the Evans again with the context that you’ll get from the less formal book will turbocharge your understanding, well that’s the basis I’m working on :)
Becoming proficient at DDD takes time and work but I suspect the rewards are, as I suggested, game changing.
Already I am looking at code and the way a business is structured to attempt to produce code with the blinkers off and a much clearer picture of the pros and cons of what I see.
For me there are but a few seminal books on writing software and having read this one I’m putting it right up there with the very, very best of them.
Absolutely loved every page.
Every disturbance meant that i had to spend 15-20 mins just getting back to the mental state from which i could continue working again. Hence, i had to work weekends and do all-nighters. Hence - I spent soooo much time working and not having fun.
This is all 'cos i was having to deal with really complex code. I was always spending time and energy trying to *reduce* the complexity. But, this book has really told me to STOP *trying to reduce the complexity*. It aint gonna happen - it IS complex.
Instead - It tells me how to *handle* the complexity. By handling the complexity, it means that i can work better. Quickly getting back to 'where i was' mentally after an interuption. It allows me to work, during normal hours, productively.
So, now I am FREEEEEEEEEEE - woo hoo!
Paraphrased Quote from Page 265: from the book: Domain-driven Design, By Eric Evans
"In every programming environment, a few basics are so pervasive that they are always in mind...
For example,..[the concept of "numbers"] don't add to the intellectual load. Beyond that, every additional concept that has to be held in mind in order to understand [the software you are building] contributes to the mental overload...
..Low coupling (one tenet for handling complexity) is fundamental to [software] design. When you can, go all the way. Eliminate all other concepts from the picture. Then the class [a bit of code] will be completely self-contained and can be studied and understood alone. Every such self-contained class significantly eases the burden of understanding the ..[the software you are building]"
Basically - if you are mildly geeky i recomend this book!
Sermon over.
Amen.
This book deserves respect for the new paradigm being described and the clear and well structured way it has been described and explained.
Its very possible you may need to have a certain level of experience and knowledge to get the most out of this book, but I think anyone who carefully reads the book, and looks up the things they may not be familiar with, will gain a great understanding of the subject.
Do not expect to be an expert on the first few readings. First read it and understand the core concepts. After that using these ideas and approach on real projects, requires commitment and patience. The author says it's not easy to implement, but it is very effective and provides a solid long term approach.
DDD might not be for all projects, but all software developers, and project managers should be aware of this paradigm and recognise the importance which DDD has.
Highly recommended, although I was doing a good chunk of what the book talked about, many aspects from the book have influenced the architecture and development process at my job.











