Domain-Driven Design (DDD) Methodology

From GM-RKB
Jump to navigation Jump to search

A Domain-Driven Design (DDD) Methodology is a software design approach that focuses on modeling software to match its domain.



References

2023

  • chat
    • Domain-driven design (DDD) is a software design approach that focuses on the complex business domains that software is being developed for. The goal of DDD is to create a common language that both developers and business experts can use to understand and communicate about the business domain, which can help improve the design of the software being developed.

      In DDD, domain models are created to represent the key concepts and relationships in the business domain, and these models are used to drive the design of the software. The focus is on developing a deep understanding of the business domain and using that understanding to inform the design of the software. DDD also emphasizes the importance of collaboration between developers and business experts, and encourages the use of iterative and incremental development processes.

2023

  • chat
    • Domain-Driven Design (DDD) is an approach to software development that focuses on modeling the core business concepts (the domain) and using a ubiquitous language to facilitate clear communication between team members. BDD borrows the concept of ubiquitous language from DDD. In BDD, this shared language is used to write test scenarios and discuss requirements, ensuring that both technical and non-technical stakeholders can understand and contribute to the development process. BDD also emphasizes collaboration among all team members, similar to the collaboration promoted in DDD.

2023

  • (Wikipedia, 2023) ⇒ https://en.wikipedia.org/wiki/Domain-driven_design Retrieved:2023-1-7.
    • Domain-driven design (DDD) is a major software design approach, focusing on modeling software to match a domain according to input from that domain's experts.

      Under domain-driven design, the structure and language of software code (class names, class methods, class variables) should match the business domain. For example, if software processes loan applications, it might have classes like loan application, customer, and methods such as accept offer and withdraw.

      Domain-driven design is predicated on the following goals:

      • placing the project's primary focus on the core domain and domain logic;
      • basing complex designs on a model of the domain;
      • initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.
    • Criticisms of domain-driven design argue that developers must typically implement a great deal of isolation and encapsulation to maintain the model as a pure and helpful construct. While domain-driven design provides benefits such as maintainability, Microsoft recommends it only for complex domains where the model provides clear benefits in formulating a common understanding of the domain. [1] The term was coined by Eric Evans in his book of the same title published in 2003.
  1. Microsoft Application Architecture Guide, 2nd Edition. Retrieved from http://msdn.microsoft.com/en-us/library/ee658117.aspx#DomainModelStyle.

2014

  • https://martinfowler.com/bliki/BoundedContext.html
    • QUOTE: ... DDD is about designing software based on models of the underlying domain. A model acts as a UbiquitousLanguage to help communication between software developers and domain experts. It also acts as the conceptual foundation for the design of the software itself - how it's broken down into objects or functions. To be effective, a model needs to be unified - that is to be internally consistent so that there are no contradictions within it. ...