DDD serialisierter Artikel
In dem Artikel Warum DDD-Anfänger sofort krank werden, nachdem sie wütend geworden sind
In der Literatur im Internet werden verschiedene Architekturen vorgestellt. Hexagonale Architektur wurde in IDDD erwähnt, aber es gibt berühmte Varianten wie Zwiebelarchitektur und saubere Architektur, die daraus entstanden sind. Dies führt zu großer Verwirrung bei der Implementierung. Sie werden Zeit damit verbringen, den Kontext zu verstehen und die zu übernehmende Architektur auszuwählen.
Ich schrieb. Hier ist eine Architektur, die ich als die "am besten zugängliche" betrachte.
Als Prämisse ist *** eine persönliche Meinung ***, die ausschließlich auf persönlichen Erfahrungen basiert.
In der DDD-Theorie gilt in Bezug auf die Architektur Eric Evans 'domänengesteuertes Design <img src =" // ir-jp.amazon-adsystem.com/e/ir?t=majackyy-22&l= = 9 & a = 4798121967 "width =" 1 "height =" 1 "border =" 0 "alt =" "style =" border: keine! Wichtig; Rand: 0px! Wichtig; "/> (der Originaltext unten) und <ein Ziel = "_ blank" href = "https://www.amazon.co.jp/gp/product/479813161X/ref=as_li_tl? Laufwerksdesign (objektorientierte AUSWAHL) (im Folgenden IDDD) und verschiedene werden eingeführt, und es wird gesagt, dass dies die einzig richtige Antwort ist. Nichts wird präsentiert. Die Architektur liegt im Ermessen jedes Projekts, und die Eignung hängt von den Projektanforderungen und den Mitgliedern ab.
Ich denke jedoch, dass ich mich fragen werde, wie ich anfangen soll, wenn ich anfange, also werde ich vorschlagen * "Wenn ein Anfänger das kann, ist das gut" *. Bitte beachten Sie.
Wenn Sie DDD-Artikel online abrufen, finden Sie Folgendes.
Schichtarchitektur
Sechseckige Architektur
Saubere Architektur
Lassen Sie mich einen kurzen Überblick darüber geben.
Die im Originaltext eingeführte Architektur. Im Vergleich zur herkömmlichen dreischichtigen Architektur besteht die Idee darin, dort eine Domänenschicht und eine aggregierte Domänenlogik einzurichten.
Die in IDDD eingeführte Architektur. Auch als "Port- und Adapterarchitektur" bekannt. Es wurde ursprünglich 2005 von [diesem Blog] vorgeschlagen (http://alistair.cockburn.us/Hexagonal+architecture).
In der Tat sind "hexagonal, Zwiebel, sauber" im Wesentlichen gleich.
Die Idee ist, dass es mit diesem Sechseck abgeschlossen ist. Es ist nur so, dass die Art und Weise, wie die Verantwortlichkeiten getrennt sind und der Name etwas anders ist. Ist es dann nicht in Ordnung mit Sechseck?
Ja, es ist im Grunde genommen sechseckig und hat daher das gleiche Design.
Jedoch ...
*** Erscheint das Implementierungsimage nicht, selbst wenn Sie sich diese Abbildung ansehen? *** ***
Ich denke, das ist der Punkt, und ich frage mich, ob diese Verwirrung der Grund ist, warum Menschen, die IDDD lesen, ihre Hände nicht sofort bewegen können.
Um die Schlussfolgerung in eine seltsame Position zu bringen, *** ist meine Empfehlung Zwiebelarchitektur ***. Obwohl dies im Wesentlichen dasselbe ist, ist es aufgrund der Änderung der Aufteilung der Verantwortlichkeiten und des Namens einfacher, intuitiv zu verstehen. Ich denke, es ist besser, die erste Einführung zu machen, wenn Sie sich diese Abbildung ansehen.
Als nächstes werde ich das vorstellen.
In Anlehnung an die hexagonale Architektur wurde die Zwiebelarchitektur 2008 in diesem Blog vorgeschlagen.
Die folgende Abbildung zeigt die gleiche Struktur flach.Gibt es nicht ein Bild davon, welche Art von Struktur es sein wird? Ich werde die Details später erläutern, aber der Punkt ist, dass die Domänenschicht aufgrund des Prinzips der Abhängigkeitsumkehr *** nicht mehr von der Infrastrukturschicht abhängig ist. Dies macht das Domänenschichtmodell zu einer Implementierung, die nicht von einer bestimmten Bibliothek abhängt.
Dies ist genau die gleiche Idee in der hexagonalen Architektur, aber es ist schwierig, aus dem konzeptionellen Diagramm zu lesen. Aus diesem Grund empfehle ich die Zwiebelarchitektur, um mit der intuitiven Klarheit beim Betrachten des Diagramms zu beginnen.
Es ist eine seltsame Reihenfolge, aber ich zeige Ihnen zum Vergleich auch eine saubere Architektur.
In Anlehnung an die Sechseck-, Zwiebel- und andere Architekturen versuchte die saubere Architektur 2013, die Konzepte zu integrieren. Es wurde in [diesem Blog] vorgeschlagen (https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html).
Das Bild stammt aus demselben Blog.
Wie Sie an der Struktur sehen können, in der sich konzentrische Kreise überlappen, wird im Grunde dasselbe gesagt. Ich denke, der einzige Unterschied ist das Wort.
Es gibt einige Artikel über die Verwendung von Clean Architecture als Android-Anwendungsarchitektur unabhängig von DDD.
Ich mag das wirklich, aber es ist schwer zu verstehen, was in die Ebene "Use Case Layer" geschrieben werden soll, und die Benennung lautet "Entity Layer" anstelle von "Domain Layer" (Entity ist Teil der Domain Layer in DDD). Also passt es nicht), also bevorzuge ich die Zwiebelarchitektur.
Wenn dies gut passt, sollten Sie die saubere Architektur benennen.
Informationen zum Packen des Verhaltens in die Domänenschicht [DDD] Was ist der Ausdruck von Domänenwissen im Modell Dieser Artikel führt es mit Beispielcode ein.
Die Task-Entität im Artikel entspricht DomainModel, TaskRepository entspricht DomainService und TaskApplication entspricht Application. Wenn man es so betrachtet, ist es ziemlich einfach und man kann sich leicht den Namen und den Inhalt der Ebene vorstellen.
Deshalb versuche ich, wenn ich DDD zum ersten Mal erkläre, zunächst die Zwiebelarchitektur und den Beispielcode wie oben zu erläutern.
Ich möchte in einem anderen Artikel etwas tiefer in die Zwiebelarchitektur und die Umkehrung der Abhängigkeit eintauchen.
Übersicht über die domänengetriebene + Zwiebelarchitektur Bitte schauen Sie hier.
Wir haben ein Buch für diejenigen veröffentlicht, die zum ersten Mal DDD lernen, oder für diejenigen, die tatsächlich begonnen haben und mit Schwierigkeiten konfrontiert sind.
Handbuch zur Modellierung / Implementierung von domänengesteuertem Design
Beginnend mit einer Erklärung des "Zwecks von DDD" und des "Modells", die dazu neigen, verloren zu gehen Wir möchten die Attraktivität und die Auswirkungen von DDD anhand von Beispielen für konkrete Modellierung und sogar Implementierung erleben.
"Kapitel 5 Architektur" in diesem Buch enthält eine detailliertere Erläuterung des Inhalts dieses Artikels. Bitte kaufen Sie, wenn Sie möchten.
Auf Twitter senden wir auch Fragen zu DDD und akzeptieren Fragen über einen Dienst namens "Question Box". Bitte folgen Sie mir, wenn Sie möchten.
Recommended Posts