Was ist Domain-gesteuertes Design?

Was ist Domäne?

Um dies zu definieren, müssen wir zunächst bestimmen, was wir in diesem Zusammenhang und in der Entwicklung im Allgemeinen meinen. Die Wörterbuchdefinition hierfür lautet "Ein Informations- oder Aktivitätsbereich". Wenn wir ein wenig weiter gehen, bezieht es sich im Bereich software engineering in der Regel auf den Themenbereich, in dem die Anwendung angewendet werden soll. Mit anderen Worten, während der Anwendungsentwicklung ist es "der Bereich des Wissens und der Aktivität, um den sich die Anwendungslogik dreht." domänengesteuertes Design

Ein weiterer gebräuchlicher Begriff, der bei der Softwareentwicklung verwendet wird DomänenschichtOder Domänenlogikwas vielen Entwicklern besser bekannt ist, GeschäftslogikGeschäftslogikEntspricht einer übergeordneten In-App-Regel Geschäftsobjekte: (OOADund interagieren miteinander, um die Modelldaten zu ändern).

Was ist Domain-gesteuertes Design?

Ursprünglich und in seinem 2004 erschienenen Buch Domain-Driven Desing, das beim Programmierer Eric Evans: Struggle and Complexity at the Heart of Software populär wurde, ist das Konzept, das für die Erweiterung und Anwendung dieser Softwareentwicklung gilt. Es zielt darauf ab, das Management komplexer Anwendungen zu erleichtern, indem die relevanten Teile der Software mit einem sich ständig weiterentwickelnden Modell verbunden werden. Sie konzentriert sich auf drei Grundprinzipien:

  • Fokus auf den Kern DomäneUnd Domänenlogik.
  • Komplizierte Designs Domäne.
  • Domain-ExpertenVerbessern Sie das Anwendungsmodell und Domänekontinuierlich zusammenarbeiten, um Probleme mit zu lösen.

Evans' Domain Based Design , DDDAußerdem werden einige gebräuchliche Begriffe definiert, die bei der Beschreibung und Erörterung von Anwendungen nützlich sind:

  • Kontext : Die Einstellung, in der ein Wort oder ausdrucksbestimmend erscheint, der seine Bedeutung bestimmt. Ausdrücke zu einem Modell können nur in einem Kontext verstanden werden.
  • Modell : Definition der ausgewählten Aspekte eines Domäneund ein Abstraktionssystem, mit dem Probleme im Zusammenhang mit ihm gelöst werden können Domäne.
  • Ubiquitous Language : DomänenmodellEine Sprache, die für alle Teammitglieder verwendet und konfiguriert wird, um alle Aktivitäten des Teams mit der Software zu kombinieren.
  • Begrenzter Kontext : Ein Grenzwert, in dem ein bestimmtes Modell definiert und anwendbar ist (in der Regel die Arbeit eines Teilsystems oder eines bestimmten Teams).

Bausteine

Domänengesteuertes Designdefiniert auch eine Reihe von übergeordneten Konzepten, die in der Zusammenschaltung verwendet werden können, um zu erstellen und zu ändern Domänenmodelle:

  • Entitätsentität : ObjektIm Gegensatz zu herkömmlichen, seine eigene konsistente Kontinuität Objektedefiniert durch Attribute.
  • Value-Objekt : Hat eine klare Identität, hat aber keine andere Identität Unveränderlich(kann nicht geändert werden).Objektattribute
  • Domänenereignis : Ein Objekt, das zum Aufzeichnen eines separaten Ereignisses im Zusammenhang mit der Modellaktivität innerhalb des Systems verwendet wird. Wenn iken, Ereignisse innerhalb des gesamten Systems überwacht werden, ein einzelnes Ereignis für Arten der verwandten Wartung generiert.
  • Aggregat: Ein Cluster Entitätenund die Grenzen, die um die Gruppe herum gesetzt werden. Anstatt einzelne oder alle Aktionen für jede einzelne auszuführen, wird der Auflistung von Elementen ein einzelnes Element zugewiesen. Externe Objekte haben keinen direkten Zugriff mehr auf jede einzelne Person oder jede Person in ihr, sondern haben nur zugriff auf ein Element und verwenden es, um Anweisungen an die Gruppe als Ganzes zu kommunizieren. Diese App ist mit vielen echten Codierungsanwendungen verbunden, die wir in unserer Serie abdecken.
  • Service: Im Wesentlichen ist ein Serviceist eine Form der Transaktion oder Geschäftslogik, die natürlich nicht in das Feld passt Objekte. Mit anderen Worten, wenn einige Funktionen sein müssen, aber Entitätwenn es nicht zugeordnet werden kann oder , ist es wahrscheinlich ein.
  • Repositories: Nicht zu verwechseln mit dem Partner Versionskontroll-RepositorysDDDBedeutung RepositoryEins Servicebesteht darin, über eine globale Schnittstelle zugriff auf alle zu Entitätenund die Sammlung in einem bestimmten Abstand. Methoden müssen definiert werden, um das Erstellen, Ändern und Löschen von Objekten in zu ermöglichen. Wenn Sie jedoch Datenabfragen verwenden, werden solche Datenabfragefunktionen aus der Geschäftslogik entfernt.
  • Fabriken Designmusterfasst die Logik des Erstellens komplexer Objekte zusammen und stellt sicher, dass der Kunde nicht mit dem Inneren der Objektmanipulation vertraut ist DDDempfiehlt die Verwendung von .

Domänengesteuertes DesignAußerdem kontinuierliche Integrationhebt auch die beliebtere App hervor als je zuvor, die das gesamte Entwicklungsteam auffordert, einen einzigen gemeinsamen Codespeicher zu verwenden und täglich (wenn auch nicht mehrmals am Tag) Verpflichtungen darauf zu übertragen. Am Ende des Auftrags wird ein automatisierter Prozess durchgeführt, der die Integrität der gesamten Codebasis überprüft, automatisierte Komponententests, Regressionstests und dergleichen durchführt und mögliche Probleme, die bei den letzten Vorgängen auftreten können, schnell erkennt.

Vorteile des domänengesteuerten Designs

  • Erleichtert die Kommunikation : Projekt Allgegenwärtigmit einem frühen Schwerpunkt auf der Schaffung von Gemeinsamkeiten und DomänenmodellTeams werden die Kommunikation oft während des gesamten Entwicklungslebenszyklus viel einfacher finden. Allgemein DDDes erfordert weniger Fachjargon, wenn Aspekte der Anwendung allgegenwärtige SpracheFrühe identifizierte werden wahrscheinlich einfachere Begriffe definieren, um sich auf diese eher technischen Aspekte zu beziehen.
  • Erhöht die Flexibilität : DDDDa seine Konzepte sehr stark basiert, wird fast alles in seinem Inhalt auf einem Objekt basieren, und daher wird es ziemlich modular und gekapselt sein. Dies ermöglicht einen regelmäßigen und kontinuierlichen Austausch und eine Verbesserung verschiedener Komponenten und sogar des gesamten Systems als Ganzes.
  • Domänenschnittstelle DDDDie Praxis, Konzepte und projektezubauen Domain-ExpertenEmpfehlung DDDweil Sie DomäneIm Gegensatz zu Anwendungen, die die Benutzeroberfläche/UX betonen, werden in der Regel Anwendungen erzeugt, die genau und repräsentativ für die eine seite sind. Erste und vordere Zeit. Obwohl ein klares Gleichgewicht erforderlich ist, DomäneEins DDDbedeutet, dass der Ansatz ein Produkt hervorbringen kann, das bei den damit verbundenen Zuschauern gut ankommt.

Domänengesteuerte Designnachteile

  • Erfordert robustes Domänen-Know-how : Auch wenn sie die technisch kompetentesten Köpfe sind, die an der Entwicklung arbeiten Domain-ExperteWenn es nicht mindestens eine Person im Team gibt, die innerhalb und außerhalb des zu implementierenden Themenbereichs genau weiß, ist das alles umsonst. . In einigen Fällen kann die Entwicklung die Integration eines oder mehrerer externer Teammitglieder erfordern, die sich durch den Lebenszyklus bewegen können.
  • Fördert iterative Anwendungen : Obwohl viele dies als Vorteil sehen, DDDEs ist unbestreitbar, dass Anwendungen stark auf kontinuierliche Iteration und kontinuierliche Integration angewiesen sind, um bei Bedarf ein selbsteinstellbares Projekt zu erstellen. Einige Organisationen, insbesondere Erfahrungen aus der Vergangenheit, WasserfallModell wenn es von weniger flexiblen Entwicklungsmodellen abhängt, kann es Probleme mit diesen Anwendungen haben.

Ich hoffe, dass ich in der Lage war, DDD in diesem Artikel richtig zu beschreiben.

  Zitat

KARABAY A, 2021 . Was ist Domain Driven Design ?,

https://www.karabayyazilim.com/blog/domain-driven-design-nedir-2020-10-05-100903

(Zugriff am 05. Oktober 2020).


  Diesen Beitrag teilen

Kommentare (0)

Kommentar

Abonnieren
Melden Sie sich für den E-Mail-Newsletter an, um als Erster über meine Blogbeiträge Bescheid zu wissen