– Result: Model with no software implementation specifics considerations – Issues: Model may not be codeable, so developers will have to adapt the model, perhaps losing its nature
on the layers below and provide loose coupling to the layers above – Separate domain concerns from technology specific concerns – 4 layers: UI, App Layer, Domain Layer, Infrastructure Layer
remains throughout the life of the software – Examples: Person, Bank Account, etc. • Value Objects – Describes certain aspects of a domain – Don’t have an identity – Examples: Address, Account State, etc.
define object ownership and boundaries – Group of associated objects (root and components) considered as one unit – Other objects can only hold references to the root
need to be applied to make sure that the terms used in the model have a specific meaning – Explicitly define context and boundaries in which the model applies – Multiple teams and multiple models • Continuous Integration – Having various contexts breaks down integration and coherence – CI is needed to make sure everything fits harmoniously
depends on the other – Similar to Shared Kernel, but only one part changes code – Conformist: Design a model without having to give a thought about the supplier’s model
the model – Stands between out client model and the external one – Talks to the external model using the external language • Separate Ways – Smaller applications that have little or nothing in common – Pointless to integrate – Not visible from the user’s perspective, but from the design point of view
by several clients – Use a provider of services • Distillation – Generates a Core Domain – Generates Generic Subdomains as a result of the distillation – Small core