Domain Driven Design
Putting the Domain Model to Work
- A domain model is an organised representation of knowledge with concepts and rules
Utility of a Model
- Three basic rules to determine the type of model:
- The model and the heart of a design shape eachother
- The model is a backbone of a language used by all team members
- The model is distilled knowledge
The Heart of the Software
- The goal is to solve problems for users, features support this idea
- Increased complexity of the domain requires a skilled team that knows their way around the system
Chapter 1 - Crunching Knowledge
- Models are designed through discussions about various parts of a system and inspire the written code that follows
- Designing the domain model through understanding and iteration challenges consulting skills and enables communication of ideas effectively
Ingredients of Effective Modelling
- Binding the model and the implementation
- Cultivating a language based on the model
- Developing a knowledge-rich model
- Distilling the model
- Brainstorming and experimenting
Knowledge Crunching
- Good domain modellers filter out irrelevant information and present ideas simply and effectively
- A successful model is iterated upon many times, taking in information from users and clients to refine the prototypes through feedback
Continuously Learning
- The required knowledge to carry out a task can be unevenly distributed between members and documentation, making the coding process difficult
- A reshuffle in organisation or members leaving results in scattered knowledge
- A productive team will continuously learn and improve their technical skills and domain modelling skills