Among the Building Blocks, the following can be distinguished:Īccording to the definition in the Oxford Dictionary, the word “domain” may be described as: “A specified sphere of activity or knowledge”. The different pieces of business can be expressed with many different implementation elements, these elements are called Building Blocks and directly create the code in the domain. Each element of the business is described as a clear implementation component. The author and originator of this approach is Eric Evans, who in 2003 published a book entitled: “Domain-Driven Design: Tackling Complexity in the Heart of Software”, which covered this issue extensively.Īs I mentioned before, DDD is mainly about mapping business assumptions in code. It includes predefined words and phrases that are understandable to both, the expert and the implementation team. In order to correctly replicate the business, it is recommended to introduce “ubiquitous language”. Maintaining consistency in the naming of implementation components is not an easy task. The names of classes, variables and other implementation components should be consistent with a business nomenclature. According to DDD, code is based on known and previously understood business assumptions, which are usually presented by a domain expert – a person who has the most knowledge of business aspects.
#WHAT IS DOMAIN DRIVEN DESIGN HOW TO#
If you create complex systems and would like to learn how to do it better, then this article is for you.ĭomain Driven Design is an approach that assumes the best understanding of business rules and problems and their reflection in the domain model and successively in implementation. Domain Driven Design is an approach with many applications which is often used in the process of domain design, communication organization, implementation of business assumptions or support in project management.