Why I like MyBatis compared to the other ORM solutions that I have tried.
Series summary and references
The Domain layer is the heart of the application. It consists of entities, value objects, domain services and domain events.
Creating applications that can handle very complex tasks requires separation of concerns. This is where the concept of a Layered Architecture comes in.
Command-Query Separation is an approach to simplify designs and improve performance by separating reads from writes. The approach recommends that every method should either be a Command or a Query, but not both.
The sheer volume of concepts on a large project can be daunting. We must divide large domains into smaller manageable models, each of which is bounded within a context.
The domain model uses the Ubiquitous Language to provide a rich visual view of the domain. It primarily consists of entities, value objects and relationships.
It is critical to establish a common language that is used by everyone on a project. When someone says something about the domain, others should understand precisely what they mean. This common language is called the Ubiquitous Language.
Domain-Driven Design is an approach for building high-quality software that meets core business objectives. It emphasizes collaboration among domain experts, developers, UX designers and other disciplines to create a domain language that everyone understands.
Bullsfirst is a sample trading system that demonstrates how technology can be used to solve real world problems. It is a system of medium complexity whose domain is reasonably easy to understand.