Programming Books C Java PHP Python Learn more Browse Programming Books
Domain-Driven Design and over one million other books are available for Amazon Kindle. Learn more

Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 


or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $17.15 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Domain-Driven Design on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

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

by Eric Evans
4.4 out of 5 stars  See all reviews (77 customer reviews)

Buy New
$47.57 & FREE Shipping. Details
Rent
$46.75 & FREE Shipping. Details
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
In Stock.
Want it Monday, April 28? Choose Two-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Kindle Edition $31.99  
Hardcover $47.57  
Paperback --  
Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry. Shop now

Book Description

August 30, 2003 0321125215 978-0321125217 1
Describes ways to incorporate domain modeling into software development.
Title: Domain-Driven Design
Author: Evans, Eric/ Fowler, Martin (FRW)
Publisher: Prentice Hall
Publication Date: 2003/08/01
Number of Pages: 320
Binding Type: HARDCOVER
Library of Congress: 2003050331

Frequently Bought Together

Domain-Driven Design: Tackling Complexity in the Heart of Software + Implementing Domain-Driven Design + Patterns of Enterprise Application Architecture
Price for all three: $137.59

Buy the selected items together


Editorial Reviews

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.




Product Details

  • Hardcover: 560 pages
  • Publisher: Addison-Wesley Professional; 1 edition (August 30, 2003)
  • Language: English
  • ISBN-10: 0321125215
  • ISBN-13: 978-0321125217
  • Product Dimensions: 9.4 x 7.2 x 1.3 inches
  • Shipping Weight: 2.8 pounds (View shipping rates and policies)
  • Average Customer Review: 4.4 out of 5 stars  See all reviews (77 customer reviews)
  • Amazon Best Sellers Rank: #16,943 in Books (See Top 100 in Books)

More 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

Most Helpful Customer Reviews
107 of 115 people found the following review helpful
5.0 out of 5 stars Re-introduces a new way to think about software design December 25, 2003
Format:Hardcover
If you have even been involved in a software project (a) as a developer and did not know what the end product is going to be used for or how it will be used or (b) as an architect who spent countless hours with your stakeholders and domain experts trying to figure out how to go about architecting your application, then you should read this book. Read it again after you have read it for the first time. This book is packed with pointers, information, tips, how-tos, "down to earth" practical samples, and even conversational examples that one could have while gathering requirements. Evans in his book fills a wide gap that we all tend to come across while designing software applications.
There are many software engineering processes out there, and each one tries to tackle the complexities of designing software applications for a given domain in its own way. Evans recognizes the tools and the processes that are popular in the industry, UML, Agile, and focuses on some aspects of the software engineering process that we tend to miss. He starts the book by talking about the importance of creating and having a Ubiquitous Language. There is a similar concept in the RUP, but not emphasizes as much - or at all. Evans goes into a great detail on why, from the inception of a project, it is important to have a common language and gives many pointers on what makes up the Ubiquitous Language for each project:
"Use the model as the backbone of a language. Commit the team to exercising that language relentlessly within the team and the in the code. Use the same language in diagrams, writing, and especially speech.
Read more ›
Comment | 
Was this review helpful to you?
133 of 148 people found the following review helpful
3.0 out of 5 stars Reality Check - Yet Another Patterns Book June 24, 2004
Format:Hardcover
I bought this book due in part to the glowing reviews here on Amazon so I feel a duty to inject a bit of skepticism, now that I've read it.
5 stars for a technical book indicates to me a book of profound quality that really breaks through with penetrating insights -- The kind of book that makes me think, "Wow, this book has really brought my development practice into a renewed, sharper focus." It doesn't necessarily have to provide radically new material, but it does have to package whatever material it contains in a way that causes the gears in my head to shift around and reorganize themselves. Design Patterns is such a book. XP Explained is such a book. I don't think this one qualifies.
Some good points: The author makes a good case for agile development/extreme programming (close relationship with the customer, unit tests, refactoring...). He seems to believe there may be a tendency to over-emphasize the importance of code and to neglect design in such practices, which may or may not be true in industry at large. But in any case, his major thesis is that it is also important to consider the overall domain model and how well-aligned it is to the goals of the business. He proposes developing a common ("ubiqitous") language between developers and business users, and to unify the various traditional views of a software system (requirements, analysis model, design model, etc..) into one. The advice is quite wholesome and will hopefully promote bringing some harmony between the agile camp and the adherents of high-ceremony approaches such as RUP and CMM.
Some bad points: The book is rather wordy, and a lot of common-sense ideas are repeated at length. I don't feel that the patterns in the book are much more than re-statements of basic principles of OO design.
Read more ›
Was this review helpful to you?
52 of 60 people found the following review helpful
5.0 out of 5 stars Read this book to graduate from programmer to designer September 24, 2003
Format:Hardcover
I think that this book along with Robert Martin's "Agile Software Development, Principles, Patterns, and Practices" and Martin Fowler's "Refactoring" are perhaps the three most fundamental prerequisites for making the leap in knowledge and maturity from object-oriented programming to true proficiency in object-oriented design. The books from Martin and Fowler cover the software solution design space and the core principles and patterns for making code that is resilient to change and easy to maintain. Eric Evans book covers the problem domain space and the abstraction skills that free programmers to "break out of the box" of the implementation domain and solution objects into the critical area the business domain and corresponding domain objects.
I once led a young software team and tried to convey the need for and essence of these skills to them, but I didnt have the right words and terms to do it for their level of experience. I wish this book had been available to me then because I think it would have made a real difference for that team.
Comment | 
Was this review helpful to you?
50 of 58 people found the following review helpful
2.0 out of 5 stars Kandinskian Driven Design July 21, 2009
Format:Hardcover|Verified Purchase
In italian we have this fun saying" "Dalle stelle alle stalle" which can be translated to "From the stars to the stables" meaning going from brilliant and promising beginnings to a low and humbling ending.. well I find that it describes perfectly this book. Writing a bad tech book is already a mortal sin without making things even worse by raising reader's expectations with a pompous title like "tackling complexity in the heart of sofware". The only thing that this book tackles is the patience of the reader forced to wade through a sea of fluff to find the few interesting ideas that are actually present. It's not that this book contains zero value, it does present some interesting ideas, but the level, usefulness and impact of these ideas are barely enough to justify a series of blog posts, not a book and certainly not a 500 pages book! Add to this lack of structure and organization, continuous repetitions and a pompousness beyond imagination with the annoying habit of continually uppercasing or bolding the "important ideas" and inventing pompous sounding name for simple concepts in the vain attempt to hide their triviality and you will have an idea of the torments that await you if you buy this book and attempt to read it.
The truly facinating question is: "how did this barely decent series of blog posts manage to get so popular and receive respect and good reviews?". I think the answer lies on its cover. It's like with modern art and abstract painting...
Read more ›
Was this review helpful to you?
Most Recent Customer Reviews
4.0 out of 5 stars Entreprise level software design
Although reading till 1/3 of the book, this book can benefit project manager as well because it also cover communication in a software design (maybe not the entire book). Read more
Published 1 month ago by phang boon chye
5.0 out of 5 stars A must read for every Mid- to Senior-level Developer
Do not be afraid by the publish date of this book (2003). Its concepts are timeless!

Every mid- to senior-level developer who is serious about their craft must read this... Read more
Published 3 months ago by Craig E. Shea
5.0 out of 5 stars A MUST Have for every Archicted and developer
This book it's like a bible. Take it with you, and read it and re read it...

Try to stick to some concepts
Published 7 months ago by Ezequiel
5.0 out of 5 stars A must have for software developers
The book explains concepts and patterns very well. Each definition comes along with a good example to make the whole idea clearer. Read more
Published 8 months ago by Andrei Fangli
4.0 out of 5 stars Great content
Eric Evans did a great job in this book. Very good at explaining all the contents of DDD, and giving a lot of good examples to help the learning process. Read more
Published 9 months ago by Anderson Galeote
5.0 out of 5 stars A Methodology for a Philosophy
While this title obviously deserves five stars, I'll try to indicate what may be considered post-DDD design considerations. Read more
Published 9 months ago by Alfredo
5.0 out of 5 stars Fantastic book
incredible that this book has gone so unnotize by the mainstream IT business. I could not have worked as a programmer without having read it.
Published 12 months ago by Johan S
5.0 out of 5 stars Excellent! A must-read for any software architect
This documents almost to a point what I've found works best in core software design. The emphasis on simplicity, discipline, conceptual segregation, and iterative learning are all... Read more
Published 13 months ago by Gordon
5.0 out of 5 stars A must read
One of the best software engineering book I have read. Yes, it is a big book and it is not always easy to understand how to apply all the recipes, but most of the technics... Read more
Published 13 months ago by Vincent
5.0 out of 5 stars The seminal work on software design
Domain-Driven Design is an absolute must-read for any software developer or architect. It introduces DDD as a central tenet for the development of (mainly object-oriented)... Read more
Published 16 months ago by Amazon Customer
Search Customer Reviews
Only search this product's reviews
ARRAY(0xa3f01564)

What Other Items Do Customers Buy After Viewing This Item?


Forums

Topic From this Discussion
Kindle version
Please make a Kindle version!
Apr 5, 2011 by Federico Mastellone |  See all 6 posts
Have something you'd like to share about this product?
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Search Customer Discussions
Search all Amazon discussions


Look for Similar Items by Category