Lohnt es sich in DDD, einen begrenzten Kontext für den Dateizugriff zu definieren?

Dec 03 2020

Ich entwerfe einen Editor als Desktop-Anwendung, die Dokumente aus Dateien öffnet, speichert und speichert, was in der Tat sehr häufig vorkommt.
Ich habe bereits begrenzte Kontexte für meine Geschäftsregeln.

Naiv möchte ich die Pfade der Dateien, mit denen Entitäten rehydriert werden, als ihre Identitäten festlegen und die Repositorys mit Dateizugriff und -verwaltung implementieren.
Ich habe jedoch das Gefühl, dass dies nicht der richtige Weg ist, um den Dateiaspekt in meiner Anwendung zu verwalten.

Halten Sie es also für interessant, einen begrenzten Kontext für die Dateiverwaltung zu entwerfen?
Haben Sie Beispiele für solche Anwendungen, die DDD und Dateiverwaltung mischen?

Die meisten Beispiele zeigen den Zugriff auf Datenbanken über Repositorys, und ich konnte bisher nichts dazu finden.

Antworten

1 afh Dec 04 2020 at 16:42

Soweit ich weiß, gehört die Dateiverwaltung nicht zu Ihrer Geschäftsdomäne, sodass ein dedizierter, begrenzter Kontext meiner Meinung nach keinen Sinn ergibt.

Ich kann jedoch irgendwie verstehen, dass Sie sich nicht wohl fühlen, wenn Sie einen Dateipfad als Bezeichner für Ihre Aggregate als primitiven Zeichenfolgentyp verwenden. Daher schlage ich vor, ein Wertobjekt zu erstellen , z. B. DocumentId, das diesen Identifizierungsaspekt kapselt und ihn vom Clientcode abstrahiert, der mit dem Domänenmodell arbeitet. Der Rest der Repository-Implementierung funktioniert genauso, als hätten Sie den Inhalt in einer Datenbank gespeichert. Verwenden Sie eine Repository-Schnittstelle in der Domänenschicht, und die Repository-Implementierung befindet sich in der Infrastrukturschicht.

TheHowlingHoaschd Dec 04 2020 at 17:18

Aus dem Buch habe ich einen begrenzten Kontext als einen Entwicklungsbereich verstanden, der ausreichend integriert ist, damit sich die Menschen auf die durch Namen dargestellten Konzepte einigen können. Es scheint zu Spaltungen zwischen Teams zu kommen, die ohne große Kommunikation und Koordination an verschiedenen Aspekten eines Problems arbeiten. ( Diese Frage diskutiert auch dies)

Es scheint nicht so, als müsste das von Ihnen beschriebene Problem in mehreren Teams behandelt werden. Sie können die Dateiverwaltung einfach in Form einer generischen Subdomain in ein separates Modul verschieben .