Domain-Driven Design
Domain-Driven Design is a concept that focuses on the problems of specific knowledge areas. Command Query Responsibility Segregation (CQRS) separates a software into a write side and a read side. Event Sourcing is an architectural pattern that represents state as a sequence of immutable events. Domains and models A domain is the area of expertise about the problem-to-be-solved. In relation to DDD, the domain comes with some category definitions: Domain Expert: the primary person(s) with understanding of the problem domain; Subdomains: are parts of the entire information domain; divided into the following categories: Core Domain: information area most relevant to the problem-to-be-solved Supporting Subdomain: area of information that is parlty generic but nevertheless relevant to the problem-to-be-solved Generic Subdomain: universal knowledge that is not specific to the main problem (on the list to outsource) Domain Model is the structured abstraction (written English, diagrams and code examples) of the klowledge area, in terms of behavior and characteristics. Ubiquitous Language is the linguistic system valid in the context of a model, to make communication precise and effective. ...