Domain-Driven Design: Tackling Complexity in the Heart of Software - Eric Evans ![rw-book-cover|200x400](https://readwise-assets.s3.amazonaws.com/media/reader/parsed_document_assets/36788031/cover-cover.jpeg) ## Metadata - Author: **Eric Evans** - Full Title: Domain-Driven Design: Tackling Complexity in the Heart of Software - Category: #books ## Highlights - Effective domain modelers are knowledge crunchers. They take a torrent of information and probe for the relevant trickle. They try one organizing idea after another, searching for the simple view that makes sense of the mass. Many models are tried and rejected or transformed. Success comes in an emerging set of abstract concepts that makes sense of all the detail. This distillation is a rigorous expression of the particular knowledge that has been found most relevant. ([View Highlight](https://read.readwise.io/read/01h0zem0brv4xz6h4q28ax5yen)) - Knowledge crunching is not a solitary activity. ([View Highlight](https://read.readwise.io/read/01h0zemesy43f3msp8g1tem0gr)) - Good programmers will naturally start to abstract and develop a model that can do more work ([View Highlight](https://read.readwise.io/read/01h0zenm26zd9fe8azqr39qhpv)) - Refactoring toward deeper insight is a continuing process. Implicit concepts are recognized and made explicit. Parts of the design are made suppler, perhaps taking on a declarative style. Development suddenly comes to the brink of a breakthrough and plunges through to a deep model—and then steady refinement starts again. ([View Highlight](https://read.readwise.io/read/01h0zetvzt9eefp6knc423cby6)) - Decisions must reach the entire team ([View Highlight](https://read.readwise.io/read/01h0zexzyhw8ncr9jk9pf270eb)) - The decision process must absorb feedback ([View Highlight](https://read.readwise.io/read/01h0zey3f0tqe62cxdg8teme31)) - The plan must allow for evolution ([View Highlight](https://read.readwise.io/read/01h0zey6k4jebvsnqjctjhggwe)) - Architecture teams must not siphon off all the best and brightest ([View Highlight](https://read.readwise.io/read/01h0zey9f5hp420xfrg74e5tjv)) - Strategic design requires minimalism and humility ([View Highlight](https://read.readwise.io/read/01h0zeyfz0ng4wjjvfqzccva88)) - Objects are specialists; developers are generalists ([View Highlight](https://read.readwise.io/read/01h0zeykak790qek6vnf9j1es1)) - The defining characteristic is a priority on understanding the target domain and incorporating that understanding into the software. Everything else flows from that premise ([View Highlight](https://read.readwise.io/read/01h0zf07dv54akv5824dmvv113))