Table of Contents
1. Foreword
- Software development is complex
- the heart of this complexity is in the essential intricacy of the problem domain itself
- to control complexity, create a domain model
- it must go beyond the surface vision
- but introduce underlying structure
- it never explained what a model is
- the greatest value of a domain model is providing an ubiquitous language that ties domain experts and technologists together
- a good domain model evolves as the implementation evolves
- it must go beyond the surface vision
2. Preface
- intent of the book
- provide
- a framework for making design decisions
- technical vocabulary for discussing domain design
- provide
- there are things that can put a project off
- bureaucracy
- lack of clarity
- lack of resources
- but the approach to design can limit how complex software can become
- interesting that so far no technology merit was discussed. I think also the tools used — e.g. type systems, static or dynamic — play a role in how complex a software project can become
- in fact, they are mentioned in the sentence after this one :)
- the most significant complexity of many applications is not technical
- premise of the book
- for most software projects, the primary focus should be on the domain and domain logic
- complex domain designs should be based on a model