webentwicklung-frage-antwort-db.com.de

Verwirrt über Bounded Contexts und SubDomains

Ich habe Eric Evans Buch gelesen und lese jetzt Vaughn Vernons Buch. Ich bin im zweiten Kapitel, wo er über Subdomains und begrenzte Zusammenhänge spricht und jetzt völlig verwirrt ist.

Von dem, was ich destillieren konnte, sollte es eine 1: 1-Beziehung zwischen einem BC und einem SD geben. Ich habe jedoch an anderen Stellen gelesen, dass dies nicht unbedingt der Fall ist.

Kann mir jemand die Beziehung zwischen einem BC und SD erklären?

48
Chris

Eine Subdomain ist Teil Ihres Geschäfts. Es gibt Kerndomänen, die Domänen und generische Domänen unterstützen. Kerndomänen sind, wo das Geld ist, unterstützende Domains unterstützen Ihr Kerngeschäft, und generische Domains sind die, die Sie brauchen, aber es interessiert Sie nicht viel, also würden Sie sie wahrscheinlich vom Regal kaufen. Für eine Versicherungsgesellschaft ist die Kerndomäne die Versicherung, eine unterstützende Domäne könnte das Kundenportfolio sein und eine generische Domäne könnte so etwas wie Timesheets sein.

Im Allgemeinen ist ein begrenzter Kontext eine Grenze, innerhalb derer die allgegenwärtige Sprache konsistent ist. In der DDD-Walhalla würde jede Subdomain in einem eigenen, begrenzten Kontext leben. In der Realität gibt es jedoch ein Erbe, es gibt Pakete, die versuchen, alles auf einmal zu tun ... was alle Arten von ungünstigen Beziehungen zwingt.

44
JefClaes

Ich versuche diese Konzepte mit meinem Verständnis zu erklären.

In DDD sollte alles in allgegenwärtiger Sprache kommuniziert werden, damit das technische Team und das Geschäftsteam dieselben Begriffe verwenden können und dieselben Ansichten zu den Problemen haben

  • Domain in DDD sind echte Probleme im Geschäft. Zum Beispiel: E-Commerce ist eine Domäne, Lohnsystem ist eine Domäne
  • Die Domäne ist in viele Subdomains unterteilt, sodass sich jede Subdomäne auf kleinere Probleme konzentriert. Zum Beispiel: E-Commerce hat viele Subdomains wie: Einkaufswagen, Abrechnung, Produktkatalog, Kundeninformationen ...
  • Jede Subdomäne sollte explizite Zuständigkeiten haben, so dass es eine Grenze gibt, um ihre Funktionalitäten zu beschränken. Die Grenze hilft dem Subdomänenfokus, nur eine Sache zu tun und gute Arbeit zu leisten. Diese Grenze wird als gebundener Kontext der Subdomäne betrachtet. Der begrenzte Kontext definiert Folgendes:
    • Wie viele Domänenmodelle werden für die Unterdomäne benötigt?
    • Welche Eigenschaften sind in jedem Modell erforderlich?
    • Welche Funktionen werden im Subdomain benötigt?

ZB: Die Subdomain "Warenkorb" benötigt Modelle: "Warenkorb", "Produkt", "Kundeninfo" ... und enthält Funktionen zum Ausführen von CRUD im Warenkorb. Hinweise: Das Produkt- und Kundenmodell in der Subdomäne "Warenkorb" stimmt möglicherweise nicht mit den Modellen in der Subdomäne "Produktkataloge" und "Kundenprofile" überein. Sie enthalten lediglich die erforderlichen Eigenschaften für die Anzeige im Einkaufswagen.

25
huaminhluan

Nachdem ich 18 mal den Buchungskontext aus dem blauen Buch gelesen hatte, half ich mir, endlich einen Griff zu bekommen. http://codeidol.com/csharp/domain-driven-design/Maintaining-Model-Integrity/Bounded-Context/

Dieser Artikel hat auch geholfen: http://gorodinski.com/blog/2013/04/29/sub-domains-and-bounded-contexts-in-domain-driven-design-ddd/

5
Chris

Bitte überprüfen Sie this link, dass es Ihnen helfen wird, Bounded Context oder Context? Der Begriff Kontext ist eine allgemeine Beschreibung einer Gruppierung von Begriffen Bereich Ihrer Anwendung, der explizit Grenzen definiert, ein eigenes Modell, ein eigenes Modell und einen eigenen Code enthält. Im begrenzten Kontext sollte alles streng konsistent sein.

Normalerweise können wir die Begriffe Context und Bounded Context austauschbar verwenden, obwohl ich mich in Bezug auf Context eher über die geschäftliche Seite der Dinge und den Begriff Bounded Context über die technische Implementierung unterhalte.

0
Elham Babaei