Was kann ich in 10 Minuten über Domain Driven Design lernen?

Sie sagen, dass Sie endlos auf das Feuer schauen, beobachten können, wie andere arbeiten, und auch DDD (Domain Driven Design, Domain-spezifisches Design) studieren können. Wenn Sie jedoch nur 10 Minuten Zeit haben, können Sie diesen Artikel lesen, ganz nach oben gehen und dann beim Smalltalk mit dem Kopf nicken.

Wir haben DDD zusammen mit Andrei Ratushny, technischer Direktor von Ugra Internet Solutions, aus verschiedenen Blickwinkeln gedreht und überprüft.





Über das Unternehmen: Ugra Internet Solutions ist ein Unternehmen, das sich mit der Automatisierung von Geschäftsprozessen im kommerziellen und öffentlichen Sektor befasst. Das Hotel liegt in der Stadt Khanty-Mansiysk. In der Entwicklung 12 Personen.

1. Was DDD ist, kann sogar einem Kind (oder einem Vermarkter) erklärt werden.


DDD ist ein Ansatz, der darauf abzielt, den Themenbereich des gesamten Unternehmens oder einzelne Geschäftsprozesse zu untersuchen. Dies ist ein ausgezeichneter Ansatz für Projekte, bei denen die Komplexität (Komplexität) der Geschäftslogik ziemlich groß ist. Seine Verwendung soll diese Komplexität so weit wie möglich reduzieren.

Außerhalb des DDD-Ansatzes achtet ein Programmierer beim Schreiben von Code mehr auf Technologien und Infrastruktur, z. B. darauf, wie eine Nachricht gesendet, empfangen, codiert und in einer Datenbank gespeichert wird, welche Datenbank.

Der DDD-Ansatz legt nahe, dass all dies natürlich wichtig, aber zweitrangig ist. Das Geschäft ist wichtiger und sollte an erster Stelle stehen. Und damit das Ganze zusammenarbeitet, lehrt uns DDD (Entwickler), mit Unternehmen die gleiche Sprache zu sprechen. Nicht in einer Programmiersprache, sondern in einer Geschäftssprache. Dies wird in der DDD Ubiquitous-Sprache aufgerufen.

2. DDD-Chip-gebundener Kontext


Bounded Context ist ein wichtiges DDD-Tool und eine explizite Grenze, innerhalb derer ein Domänenmodell existiert. Es ordnet eine einzelne Sprache einem Softwaremodell zu. Auf der Grundlage von Kontexten können Sie den Code in Module / Pakete / Komponenten unterteilen, sodass Änderungen in jedem von ihnen nur minimale (oder null) Auswirkungen auf die anderen haben.

Für Entwickler können Sie mit diesem Ansatz Änderungen am Code vornehmen, ohne befürchten zu müssen, dass irgendwo an einem anderen Ort etwas kaputt geht (ändern Sie beispielsweise etwas an der Kasse und machen Sie sich keine Sorgen, dass dadurch etwas von den Kurieren abfällt).

Für Teamleiter ermöglicht dieser Ansatz eine signifikante Parallelisierung der Arbeit von Teams, was die Arbeit am Projekt erheblich beschleunigen kann.

Neben einem begrenzten Kontext gibt es alle möglichen Dinge wie Kontextkarten, eine einzige Sprache, Beziehungen zwischen Kontexten, Übersetzungskarten ... uhhh! Sie werden in 10 Minuten nichts davon erzählen, aber Sie können das "grüne" Buch lesen.

3. Allgemeine Bücher über DDD: rot, blau und grün


DDD ist ein ziemlich alter Ansatz. Seine Verwendung erscheint vernünftig und durchaus gerechtfertigt, aber aus irgendeinem Grund ist es immer noch nicht weit verbreitet, auf Konferenzen wird wenig darüber gesagt. Was ist los mit diesem DDD?

Es wird davon ausgegangen, dass das Hauptproblem der Mangel an Schulungsunterlagen ist. Die ganze Theorie wird in mehreren Büchern beschrieben: rot , blau und grün . Sie sagen, dass es „ein anderes rotes Buch“ gibt , aber nur wenige haben es bisher gesehen :) Die

roten und blauen Bücher sind so schwer zu erkennen, dass ich irgendwo in der Mitte das Buch aus dem Fenster werfen möchte und schreie: „Genug von dieser Scheiße von mir, sehen Sie diese unverständliche DDD! Ich werde gehen und tun, was ich kann. " Und hier geht es nur um Theorie, mit Materialien zur Praxis ist es noch komplizierter.

Wenn Sie sich dennoch dazu entschließen, Literatur über DDD zu studieren, beginnen Sie am besten mit einem grünen Buch. Darin durchläuft Vaughn Vernon die Spitze des Ansatzes und zeigt anhand einfacher Beispiele seine Vorteile. Sie sagen, dass die Übersetzung zweifelhaft war, deshalb ist es besser, das Original zu lesen.

4. Wie man versteht, dass es Zeit ist, DDD anzuwenden


Zählen Sie die Anzahl der Anwendungsfälle für Ihr System. Wenn sie im Bereich von 10-15 liegen, ist die Geschäftslogik nicht so kompliziert, und Sie können nicht dämpfen, verwenden Sie keine DDD.

Wenn Sie 30-50 oder mehr UX-Fälle haben und diese sich sehr stark überschneiden, ist es sinnvoll, zumindest in einem Teil des Systems über die Verwendung von DDD nachzudenken.

5. So implementieren Sie DDD von unten nach oben im Unternehmen


Stellen Sie sich vor, Sie sind ein Entwickler, der DDD mag, und Sie denken, dass dieser Ansatz in Ihrem Unternehmen angewendet werden kann, um Menschen glücklich zu machen.

Es ist schwierig, eine Guerilla-Einführung von DDD allein zu starten. Erstens reicht Wissen möglicherweise nicht aus, um den Prozess zu starten. Zweitens denken die Jungs aus Ihrem Team vielleicht, dass Sie dumme Dinge tun und alles kaputt machen, indem Sie Stöcke in die Räder stopfen.

Es ist besser, mit der Implementierung zu beginnen, indem Sie eine Initiativgruppe erstellen: Probieren Sie den Ansatz gemeinsam aus, verstehen Sie die Nuancen und verstehen Sie in der Praxis.

Nur dann können Sie sich an einen Architekten oder technischen Ingenieur wenden, um ihm den Wert zu erklären. Denken Sie jedoch daran, dass DDD nicht überall benötigt wird. DDD löst bestimmte Probleme, daher ist es sehr wichtig, dies nicht zu übertreiben.

Der Ansatz hat einen Nebeneffekt: Wenn Menschen überhaupt anfangen, nach DDD zu streben, werden sie bereits nach dem Paradigma „Teilen, Teilen, Reduzieren der Konnektivität und Befolgen der Geschäftslogik“ handeln. Und daraus werden positive Änderungen beginnen: Irgendwo wird der Code besser geschrieben, irgendwo wird die Geschwindigkeit zunehmen. Dieses Wissen muss in Kontexten und anderen DDD-Artefakten nicht in Code umgewandelt werden. Der Code kann der Code bleiben, aber er wird besser und die Geschwindigkeit und Qualität werden zunehmen.

6. So implementieren Sie DDD im Unternehmen von oben nach unten


  1. Stellen Sie sicher, dass dieser Ansatz in einem bestimmten Fall hilfreich ist.
  2. Finden Sie eine Person im Team, die über architektonische Fähigkeiten verfügt (er hilft zu bestimmen, wo im System die zu schneidenden Nähte sind).
  3. Bitten Sie DDD-Praktizierende, Sie zu unterrichten.
  4. . ! . , .

7. DDD


Natürlich durch Übung. Sagen Sie der Person nur nicht im Voraus, dass Sie ihr DDD beibringen, und erschrecken Sie nicht im Voraus.

Lassen Sie die Person kommen und die Rätsel bekommen. Sagen Sie ihm nicht, dass es DDD ist, lassen Sie ihn es einfach tun. Er wird es tun, basierend darauf, wie er das Feste und all das versteht. Wenn er dann die Arbeit übergeben wird, muss er sagen: „Lieber Kerl, es scheint zu funktionieren, aber es muss erneuert werden“ und ihm erklären, warum.

Erzwingen Sie nicht, alles gezielt zu lesen oder zu lernen. Seien Sie in dieser Hinsicht interaktiv. So wird eine Person in 3-5 Monaten beginnen, die Grundprinzipien von DDD zu verstehen: in Bezug auf die Implementierung, in Bezug auf die Theorie. Er wird Muster noch früher durch Annäherungsartefakte - Kontextkarten - verstehen. Zuerst werden die Leute nichts verstehen, aber nach und nach werden sie geschnitten, und einige werden sogar Bücher lesen.

8. Ich kann DDD - eine unwichtige Zeile für den Lebenslauf in Russland


Wenn Sie in Russland sind und DDD kennen, ist das cool. Es ist jedoch weit davon entfernt, dass das Wissen über DDD selbst für die Arbeit nützlich ist. Sie dient dem Arbeitgeber vielmehr als Indikator für Ihren hohen Entwicklungsstand als Entwickler. Schließlich entwickeln Sie die Fähigkeiten, die Sie durch das Studium des DDD-Ansatzes erwerben, als Programmierer und als Designer (Architekt).

Wenn Sie jedoch darüber nachdenken, ins Ausland zu ziehen, kann sich eine solche Zeile im Lebenslauf positiv auswirken. Im Ausland ist die DDD-Community viel größer und der Ansatz selbst ist viel beliebter als der unsere. Besonders in Europa.

9. Die Beziehung von DDD zu Gesichtsbehaarung


Beobachtung: Menschen, die DDD verstehen, tragen Bärte. Bedeutet dies, dass ein Bart eine Voraussetzung für den Erfolg bei DDD ist? Was denken Sie?

10. Nützliche Materialien zu DDD



« ». , . , Miro, , Amazon, Microsoft, . .

:


All Articles