Advanced Search
Start Your Free Trial

Overview

Other Readers Also Read...
Patterns of Enterprise Application Architecture

Patterns of Enterprise Application Architecture
by Martin Fowler; David Rice; Matthew Foemmel; Edward Hieatt; Robert Mee; Randy Stafford

Refactoring: Improving the Design of Existing Code

Refactoring: Improving the Design of Existing Code
by Martin Fowler; Kent Beck; John Brant; William Opdyke; Don Roberts

“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.



Amazon.com® Reader Reviews (Ranked by Helpfulness)

Average Amazon.com® Rating: 4.0 out of 5 rating Based on 53 Ratings

Kandinskian Driven Design - 2009-07-22
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
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... some guy puts together something kind of original or vaguely interesting or just plain strange, a couple of critics start praising its outstanding aestetics and deep meaning for personal reasons of just as a way to praise themselves who are the only ones able to discern such beauty and meaning , they present the work in an elegant and "important" location and well.. the rest of us deep inside still think it 's fried air, but we still go to the exhibit and dare not say so, since well.. if it's so higly regarded there must be a reason, and maybe it's just that I am not good enough to get it... That's why the best qualification for this book and the attitude it promotes "kandinskian". A (hopefully) failed attempt to transfer to software design and development the horrors of art criticism.
And to the author and whoever shares his love for pompous sounding words and names (or as he would say it: "UBIQUITOUS LANGUAGE") I would advise to reflect on this Feynman quote:
"You can know the name of a bird in all the languages of the world, but when you're finished, you'll know absolutely nothing whatever about the bird... So let's look at the bird and see what it's doing -- that's what counts. I learned very early the difference between knowing the name of something and knowing something."

Thoughtful and relevant - 2009-07-01
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Must read for software architects. Book is well organized and written. Concepts are useful in everyday analysis, design, and implementation.

Also, excellent editing and layout. Always nice to find!

An excellent reference, another must read for developers - 2009-06-14
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Through this book Evan's shares his extensive development and consulting experience as he outlines his approach to Domain Driven Design (DDD) - DDD being the development approach that Evan's has had the most success with. Evan's writing style is easy to read as he maintains a comfortable conversational tone while pragmatically guiding us through the many patterns and concepts that encompass Domain Driven Design. However; be warned the concepts that lie within are occasionally dense, abstract, but ultimately enlightening as Evan's forces us to look at development from a new perspective.

It's fair to mention that this book has been charged as being just another patterns book, and while I sympathize with those reviewers - some concepts do come across as being overly abstract without clear implementations (code) to reference. I found this book to be an insightful window into the mind of an experienced developer, and not just another patterns book. If you do find yourself grasping for more concrete implementations then you'll want to read Jimmy Nilsson's Applying Domain-Driven Design and Patterns: With Examples in C# and .NET book too - Nilsson's book provides many code examples while directly referencing Evan's text.

As a developer or an emerging architect you won't want to overlook this book. From my experience the concepts and patterns surrounding Domain Driven Design frequently crop up in Service Orientation, MVC/MVP Web Applications, Object Orientation, Test Driven Development, Model Driven Development, and other modern best practices. I highly recommend this book, it's a great reference to have alongside Steve McConnell's Code Complete, Robert Glass's Facts and Fallacies of Software Engineering, and the Martin Fowler blessed books too.

The Software Design Book in the Age of Refactoring and XP - 2009-05-06
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Eric Evans teaches how to model a range of business domains and the corresponding software in lockstep. This is an important and heavy subject. One has to step through unfamiliar domains. And one steps through them before they are properly explained, due to a not yet existent good model. Consequently one has to cope with bad descriptions of domains. Even more, you may not be very interested in most of the example domains. This is inherent to the subject matter and unavoidable.

The book reads similar to Martin Fowler's excellent pattern books. Both authors know how to explain an important and difficult subject. But be prepared for quite some hard work wading through the 500 plus pages. Your reward will be well worth it.

Excellent - 2009-04-13
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
It is on top of every thing else. It is a recipe of how to build domain applications underlining the design patterns and its relations that work best.

Browse Similar Topics

Top Level Categories:
Software Engineering

Sub-Categories:
Software Engineering > Methodologies

Some information on this page was provided using data from Amazon.com®. View at Amazon >


About Safari Books Online • Terms of Service • Privacy Policy • Contact Us • Corporate Licenses • Help • Accessibility | See us on FacebookSee us on Linked InSee us on TwitterRSS

Copyright 2009 Safari Books Online. All rights reserved.