it:ad:ddd:modules

IT:AD:DDD:Modules


Applications, tend to grow. That is, if you have done a good job, and the client trusts you to add more functionality.

Modules allow for code concepts to me kept separate in the app (Contacts, Invoices, Appointments, etc.)

  • Module
    • A Single Model usually spans n Modules (Invoices, COntacts)
    • Can be by Assembly or just Namespace
    • Not to be confused with a Bounded Context
    • If a Model is a Story, a Module is a Chapter…
    • Examples:
      • ERP:
        • Payroll
        • HR
        • Billing
        • Warehouse
  • Bounded Context
    • Has its own Model, can have its own Db,
      • Think of it as quite separate from other elements within the Shell
      • 1-to-1 Relationship between EF (or NHibernate, etc.) Model and Bounded Context
      • Patterns to handle communication between Contexts are:
            * Anti-Corruption Layer:
                * Facade: to expose minimal surface area
                * Adapters: to translate their interface into our interface
                * Translators: map entities from theirs to ours
                to translate data between the two.

        * Shell

      • …

      ## Benefits ##

  • Separation of Concerns
  • Deployment is eased (sections can be released while others are turned off)

* A Communication System will be required between Modules

..

  • /home/skysigal/public_html/data/pages/it/ad/ddd/modules.txt
  • Last modified: 2023/11/04 03:23
  • by 127.0.0.1