Dies ist ein Versuch, alle Informationen über Domain Driven Design, die die Welt kennt, in dynamischen Sprachen (Python, Ruby, PHP usw.) zu sammeln. Nicht nur DDD, sondern alle wichtigen Informationen über mehrschichtige und saubere Architektur mit Trennung der Geschäftslogik von der Infrastruktur und dem Framework-Code.
Also los geht's!
Architecture Patterns with Python (auch bekannt als „Cosmic Python“) – Buch von Harry Percival und Bob Gregory mit DDD und strategischen Mustern (erscheint demnächst bei O'Reilly, auch als Frühveröffentlichung auf Safari erhältlich
Clean Architectures in Python – Buch von Leonardo Giordani basierend auf seinem Beitrag
Domain-Driven Rails – ein Buch von Robert Pankowecki und dem Arkency-Team über DDD, CQRS und Event Sourcing im Zusammenhang mit Rails-Projekten
Domain-Driven Design in PHP – Buch von Carlos Buenosvinos, Christian Soronellas und Keyvan Akbary über DDD und die Implementierung mit PHP
Ereignisbasierte Bausteine für domänengesteuertes Design mit Python – Dieses kleine Buch enthält eine prägnante Mustersprache für ereignisbasiertes DDD in Python. Dieses Buch konzentriert sich auf zuverlässige „Bausteine“ für DDD. Es vermeidet die Wiederholung der „strategischen“ Muster von DDD. Um zuverlässige, skalierbare und wartbare Anwendungen und Systeme zu erstellen, ist ein praktischer „Bottom-up“-Ansatz erforderlich. Das Vorwort beinhaltet eine erneuerte Betrachtung der Mustersprache als Beschreibung von Ereignissen. Es handelt sich um ein kleines Buch, das derzeit noch nicht ganz fertig ist.
Implementing the Clean Architecture – ein Buch, das sich auf praktische Aspekte der Implementierung der Clean Architecture konzentriert. Es wird stark durch Codefragmente in Python veranschaulicht. Neben der Clean Architecture selbst werden auch andere Software-Engineering-Muster wie Modularität und Dependency Injection eingeführt. CQRS oder Event Sourcing.
Trennung von Geschäftslogik und Datenzugriff in Django – Python, Django
Warum scheint domänengesteuertes Design nur bei statischen Sprachen wie C und Java beliebt zu sein?
Domain Driven Design-Bemühungen in dynamischen Sprachen?
DDD – Domain Driven Design, welche Entwicklungsreihenfolge sollte angewendet werden? - Python
Abrufen von Aggregaten aus anderen Aggregaten – StackOverflow-Frage zu Aggregaten in der Python-Anwendung
Vermeidung des Dominoeffekts in unseren Dienstleistungen (SOLID auf Makrodesign-Ebene)
Clean Architecture Python (Web)-Apps – Przemek Lewandowski über die Anwendung von Uncle Bobs Clean Architecture auf Python-Web-Apps mit Codebeispielen und Typanmerkungen
Domain Driven Design mit Python – Folien auf Portugiesisch, enthält aber nützlichen Code in Python
Von Active Record zu Events – Emanuele DelBono über die Verwendung von DDD/CQRS/ES in Ruby on Rails-Anwendungen
Vom Framework-gekoppelten Code bis hin zu Microservices durch DDD
Sechseckiges Design in Django – Python, Django, enthält Code.
Microservices: Verbesserung der Autonomie unserer Teams mit ereignisgesteuerter Architektur
DDD für Rails-Entwickler – ganzer Blog von Victor Savkin über DDD in Ruby on Rails
Domain-Driven Design und MVC Architectures – zwei Artikel von Federico Cargnelutti mit PHP-Beispielen im zweiten Teil
Wertobjekte in Java und Python – über Value Object
, Vergleich von Wertobjekten in Java und Python
Domain Driven Design methodic Python – Eine kleine Zusammenfassung über DDD in Python
Erkunden von Domänen mit Python – Ein kleiner Artikel mit Beispielen für Repository
und Storage
-Klassen
Saubere Architekturen in Python: ein Schritt-für-Schritt-Beispiel – Implementierung von Uncle Bobs sauberer Architektur in Python. Enthält eine Schritt-für-Schritt-Erklärung und ein Github-Repo mit dem gesamten Code.
Einführung des Command Handlers auf https://www.cosmicpython.com/ (früher im Tech-Blog made.com), gefolgt von Repository und Unit of Work Pattern in Python, CQRS/Handlern und Views und Why use Domain Events?
Große Web-Apps in Python: Eine gute Architektur – Artikel mit dem Punkt, dass MVC für große Anwendungen nicht ausreicht und Sie eine separate Ebene für die Geschäftslogik benötigen.
DDD + Ruby-Subreddit – Ein Subreddit für Ruby-Entwickler, die sich für Domain-Driven Design interessieren.
Arkency-Blog und Newsletter – Sie schreiben viel über DDD, Event Sourcing und Tests in Ruby/Rails. Nicht nur einfacher Text, sondern auch Code und gelegentlich sogar Webinare.
Hanami in Produktion – 2 Jahre später: Beitrag auf Portugiesisch, der die Erfahrungen von Creditas beim Aufbau und der Wartung seiner Kernanwendung (60.000 Zeilen Code + 2 Mio. Anfrage/Monat) mit DDD in Ruby unter Verwendung des Hanami-Frameworks beschreibt.
So verbessern Sie die Benennungskontexte im domänengesteuerten Design – Beschreibt die Technik, wie Sie einen besseren Namen für Ihre begrenzten Kontexte finden.
Domain-Driven Design in PHP implementieren – Einführung in Domain-Driven Design und wie man es in Laravel mit PHP implementiert von Alireza Rahmani Khalili.
Event Sorcery – Ausführlicher Blog mit ausführlichen Artikeln über die Erstellung ereignisbasierter, domänengesteuerter Anwendungen mit Python.
So starten Sie DDD & Onion-Architecture in der Python-Webanwendung – Ziemlich selbsterklärender Titel des Blogbeitrags von Takahiro Ikeuchi. Einschließlich Github-Repo mit der Ideenumsetzung.
Praktisches Beispiel einer hexagonalen Architektur mit Python-Nutzung (FastAPI-Beispiel enthalten) – Artikel über hexagonale Architektur, in dem die Grundlagen erläutert und die Codebeispiele gezeigt werden.
Domain-Driven Design with Python – Toller Vortrag über DDD und Python mit Erläuterungen zu vielen DDD-Themen und Codebeispielen von Robert Smallshire von Skills Matter
Domain-Driven Design Patterns in Python – Ausführlicher Vortrag über DDD-Muster in Python von Robert Smallshire von EuroPython 2018
Die saubere Architektur in Python – Toller Vortrag über PyOhio2014 von Brandon Rhodes
Sechseckige Architektur in Django Talk auf Russisch von @proofit404, enthält Codebeispiele und Projektlayout
Domain Driven Design und hexagonale Architektur mit Rails – Ruby on Rails-Vortrag von der RailsConf 2014 von Eric Roberts und Declan Whelan mit Codebeispielen
Sechseckige Schienen – Ruby on Rails, GoRuCo 2012 von Matt Wynne
Sechseckige Architektur in DDD – Golf mit DDD in PHP von Gordon Skinner von der PHP UK Conference
Boundaries Python – Vortrag über Boundaries
von Gary Bernhardt von Pycon US 2013
Boundaries Ruby – Gleicher Vortrag von Gary Bernhardt, aber in Ruby aus Ruby Conf 12. Enthält einen Abschnitt zur Qualitätssicherung.
Hexagonal TDD – TDD-Implementierung der hexagonalen Architektur der Schienenanwendung. In 3 Teilen.
Jim Weirich über die Entkopplung von Schienen – Showcase von Jim Weirich vom Oktober CincyRb.
Von Active Record zu Events – Ein Vortrag von Emanuele DelBono von Wroclove.rb über DDD/CQRS/ES in Ruby und Ruby on Rails.
Auf Langlebigkeit ausgelegt: Ein domänengesteuerter Ansatz für schöne Systeme – RailsConf 2017-Vortrag von Andrew Hao. Techniken zur Umgestaltung der Legacy-Codebasis in den DDD-Stil, Designübersicht und Codebeispiele.
Technisch gesehen DDD – Fantastischer Vortrag von Pim Elshoff über den Einstieg in DDD unter Verwendung von Value Objects, Entities und Services in PHP
Vielleicht: Anwendung von domänengesteuertem Design und reaktiven Architekturen auf funktionale Programmierung – ein Vortrag von Rob Martin von der ElixirConf 2017.
Clean Architecture – PyGotham 2018 Vortrag von Sebastian Buczyński mit Code und Folien. Es gibt auch einen Blogbeitrag auf Englisch
Domain Driven Design – CODEiD 2018 Vortrag von Артём Антоненко @Antonyan. Auf Russisch. Es gibt auch ein Repo – PHP DDD Skeleton und andere DDD-bezogene Projekte unter seinem Github-Konto.
Eventsourcing 101 – der Vortrag über Event Sourcing mit Live-Codierung in Python von Bob Gregory. Er programmiert einen Event-basierten E-Commerce-Warenkorb von Grund auf.
Domain Driven Design For Python – Episode 219 – Wenn Ihre Softwareprojekte zu skalieren beginnen, wird es zu einer größeren Herausforderung, alle Teile zu verstehen und zu warten. In dieser Folge teilt Henry Percival seine Erfahrungen mit domänengesteuertem Design in großen Python-Projekten.
Da ich meine Projekte erfolgreich abgeschlossen habe – PyCon RU 2019-Vortrag von Boris Zema (auf Russisch) über die Verwendung von DDD-Mustern zur Reduzierung von Wargaming.net-Projekten.
Saubere Architekturen in Python – PyLondinium19-Vortrag von Leonardo Giordani
Event-Sourcing in Python – Ausgereifte, stabile und beliebte Python-Bibliothek für Event-Sourcing und DDD.
PyAssimilator – Eine Reihe von DDD-Mustern in Python mit Unterstützung verschiedener externer Bibliotheken.
dry-python – Eine Reihe von Python-Bibliotheken für steckbare Geschäftslogikkomponenten.
Ruby DDD-Beispielanwendung – Portierung der in Java in Ruby geschriebenen DDD-Beispielanwendung. Auf jeden Fall lesenswert.
DDD in Django – Ein Versuch, DDD und hexagonale Architektur in Django zu implementieren
DDD in Flask – Ein knappes Beispiel einer DDD-inspirierten Architektur mit Flask
DDD in Falcon – Eine einfache Implementierung von DDD und hexagonaler Architektur in Falcon mit einigen enthaltenen Batterien.
Kanban in Python – Python-Implementierung eines einfachen Kanban-Boards mit DDD-Ansatz.
Kanban in Clojure – Das Gleiche gilt für Clojure
Kanban-in-Python-Übungen – Das gleiche Board ist in Übungen für Studenten eines Workshops von Sixty-North unterteilt.
Rewind – Rewind ist ein in Python geschriebener (CQRS)-Ereignisspeicherserver. Nicht, dass es mit dem DDD-Ansatz geschrieben wäre, aber dennoch verwandt.
Die Clean Architecture-Beispielanwendung (Python) – Repository mit einer in Python geschriebenen modularen Beispielanwendung. Der Code wird im Buch „Implementing the Clean Architeure“ verwendet.
Die saubere Architektur mit Python – Reddit-Diskussion über das Thema und diesen Kern mit vorgeschlagener Architektur und einigen Kommentaren dazu.
abidria-api – Django-Anwendung, geschrieben mit sauberer Architektur. Außerdem gibt es einen Artikel von Jordi Fierro, der Architekturkomponenten und deren Interaktion miteinander erklärt.
Hanami – Hanami ist eine gute Option aus der Rails-Welt und ein aufstrebendes Framework, das die Entwicklung von DDD-Anwendungen in Ruby fördert und dabei hilft. Der Leitfaden „Erste Schritte“ verweist auf einige DDD-Konzepte und wie sie in das Framework passen.
Hexagonale Architektur + DDD + CQRS, angewendet in PHP mit Symfony 4
Revents – Eine mögliche Implementierung eines DDD/CQRS/ES in Ruby und Ruby on Rails
DDD Rails Sample – Projekt, das als Ausgangspunkt für diejenigen dienen soll, die Domain Driven Design-Anwendungen in Rails erstellen möchten.
Domain-Driven-Design-Klassen und -Schnittstellen – Das Projekt ist eine PHP-Beispielsammlung von Domain-Driven-Design-inspirierten Klassen und Schnittstellen.
DDD CQRS ES Banking-Anwendung – Banking-Anwendung, die den DDD-Regeln folgt und Clean Architecture, Event Sourcing und CQRS verwendet.
Die Beispielanwendung für die Hexagonal-Architektur (Python, mit FastAPI) – Beispielanwendung, die in Python auf dem FastAPI-Webframework geschrieben wurde und die Prinzipien der Hexagonal-Architektur verwendet.
DDD-Muster in Python – Sixty North bietet zweitägige Präsenzschulungen zur Implementierung von DDD in Python mit relationaler oder ereignisbasierter Persistenz.
Rails + Domain Driven Design Workshop – Workshops von Arkency. Die Seite sollte einen Zeitplan für zukünftige Workshops und eine Zusammenfassung dessen enthalten, was Sie von ihnen erwarten können.
EventStorming-Grundlagenkurs (auch auf Spanisch) – erlernen Sie die EventStorming-Grundlagen zum Entwerfen von Software mit einer DDD-Denkweise, um sie später mit einer beliebigen dynamischen Programmiersprache zu implementieren.