Ein zentraler Bestandteil von Domain Driven Design ist die konsistente Verwendung einer allgegenwärtigen Sprache im gesamten System - in Konversationen, Code, Datenbankschema, Benutzeroberfläche, Tests usw.
Ich bin an einem Projekt beteiligt, in dem es bereits eine etablierte Domain-Sprache gibt, die von einer internationalen Standardorganisation definiert wird.
Wir arbeiten jedoch für eine öffentliche Website, und die "richtigen" Begriffe für die Domain entsprechen nicht unbedingt der Art und Weise, wie die Öffentlichkeit sie normalerweise verwendet und versteht.
Der Kompromiss, den wir derzeit verwenden, besteht darin, die "offiziellen" Begriffe überall zu verwenden, außer in unseren Akzeptanzkriterien, die sich auf UI-Komponenten beziehen, in denen wir die informellen Namen verwenden.
Scheint dies ein vernünftiger Ansatz zu sein?
quelle
Antworten:
Ja, das scheint vernünftig. Wenn das Zielpublikum die Begriffe Ihrer Sprache nicht versteht oder sie falsch interpretiert, hat die Benutzerfreundlichkeit für den Endbenutzer Vorrang.
Ein Programm oder Inhalt, den ein typischer Benutzer nicht versteht, ist von geringem Wert. Mehr noch, wenn Sie ihnen nur eine vereinfachte Spitze eines Eisbergs präsentieren möchten, weil sie keine Domain-Experten sind und niemals sein werden.
Wenn Sie während der Entwicklung über die Domain sprechen, versteht normalerweise jeder die Sprache, da sie korrekt ist und sich alle Personen innerhalb der Domain befinden. Wenn jedoch durch die Kommunikation von Inhalten an Außenstehende der Domäne geschäftlicher Wert geschaffen wird, tun Sie dies so einfach wie möglich. Verwenden Sie Formulierungen und Sprachen, die am seltensten missverstanden werden, und verwenden Sie sie in der Benutzeroberfläche.
Behalten Sie die genaue Sprache in Ihrem Code und für die Kommunikation mit Personen, die mit der Domain befasst sind. Dies sind die Personen, die über die Spezifikationen verfügen und die Hauptbenutzer der Anwendungen sind, mit denen Sie die logischen Geschäftsdetails besprechen. In dem seltenen Fall, dass Sie die meisten logischen Geschäftsdetails wirklich mit Benutzern besprechen, die keine Ahnung von der Domain haben und nicht tief in diese eintauchen müssen, integrieren Sie ihre Sprache in Ihre Domain-Sprache, vorausgesetzt, sie haben überhaupt eine gemeinsame, eindeutige Sprache (was wahrscheinlich nicht der Fall ist).
Stellen Sie jedoch sicher, dass die Frontend-Entwickler Ihre informellen Bedingungen und die entsprechenden Domain-Bedingungen kennen.
quelle
Ich denke, der einfachste Weg, dies zu beantworten, besteht darin, die Linie genau dort zu zeichnen, wo Sie sie zeichnen würden, wenn Sie die Benutzeroberfläche in einer völlig anderen Sprache präsentieren würden.
Wenn Ihre Endbenutzer Dinge in Sanskrit sehen müssten, wie würden Sie den Unterschied zwischen der Benutzeroberfläche und dem Code (und anderer interner Kommunikation) überbrücken.
quelle