Frage

Was ist die Unterschiede und die ähnlichkeiten zwischen Domänen-Spezifischer Sprachen (DSL) und Domain-Driven Design (DDD)?

War es hilfreich?

Lösung

Domain-Driven Design (DDD) ist eine Art des Denkens und der Kommunikation über die Probleme und Ihre Lösungen.

Domain-Specific Language (DSL) ist eine Art des Schreibens code.

Sie sind ähnlich, weil Sie beide beginnen mit dem Wort "domain".Das ist es, denke ich.:-)

Andere Tipps

Domain-Driven Design betont die Rolle der problem-Domäne, wie Sie erstellen die grundlegenden Vokabeln, Konzepte und Objekt-Modell für das system entworfen.

Eine domänenspezifische Sprache ist eine Schreibweise für die Angabe oder die Umsetzung der bestimmten Teile des Systems, ausgerichtet auf die Bedürfnisse der Praktiker in dieser Domäne (d.h.Minimierung der "programmerese" Aspekte der meisten Programmier-oder spezifikationssprachen).

Ich würde argumentieren, dass Sie irgendwie verwandt sind und nicht nur durch das Wort "domain".Sobald Sie haben eine gute (domain-driven) design, wird es sicherlich helfen bei der Schaffung einer soliden DSL.

"DDD nicht speziell erfordern die Verwendung einer DSL -, obwohl es verwendet werden könnte, um zu helfen, definieren einen DSL". - Wikipedia

Ich denke, beide haben Ihren Schwerpunkt auch die Verringerung der Lärm in der Programmierung, DDD wirkt auf semantische Rauschen und DSLs in syntactic noise.

Diese kann dabei helfen, zu verstehen, meine Meinung:

http://fragmental.tw/2009/03/12/expessive-design-slides/

http://fragmental.tw/2008/04/20/domain-specific-languages-and-video-games/

Ein element von DDD gesehen werden kann, als die Fähigkeit zu entwickeln, Allgegenwärtig Sprachen für die Kommunikation mit dem stakeholder über die domain.Für die Teilmenge der UL, die beide eindeutig und potenziell ausführbare Datei, Sie können wählen, um Sie umzusetzen eine interne oder externe DSL.

Hier ist ein video von mir über dieses auf die DomainDriven Website:

http://domaindrivendesign.org/library/bell_gitlevich_2009

Beste Wünsche, Peter

Wikipedia hat eine ziemlich klare definition für DSL:

Der Begriff domain-spezifische Sprache (DSL) hat populär geworden in den letzten Jahren in der software-Entwicklung geben Sie eine Programmiersprache oder Spezifikation der Sprache gewidmet bestimmte problem-Domäne, ein insbesondere problem-Darstellung Technik und/oder einen bestimmten Lösung Technik.

Dies kann implementiert werden als eine Reihe von Klassen nach einigen konsistentes Muster, einige nette C++ - template-Magie, oder ein compiler/parser interpretiert freie Texteingabe zu tun, was Sie wollen.

Ich denke, Sie sind irgendwie verwandt sind (wie Christophe setzen es), aber zwei völlig verschiedene Aspekte.Ich würde nicht einmal entlassen jop statement.

Für den sehr gut geschriebenen Informationen auf DSLs finden Martin Fowler ' s von Seiten, auf DSLs (work in progress), können Sie beginnen mit den Beispiel, oder die definition.Eine weitere gute Lektüre ist seine QandA.

DDD basiert auf der domain-Modell und in der Regel mindestens eine Abstraktionsebene höher als die DSL.Beides kann ohne das andere existieren, und wie Christoph schon sagte, beide Seiten können verwendet werden in der gleichen Projekt.

Die Unterschiede, ist ein Ansatz für den Aufbau eines systems mit einer Domain-Spezifischen Sprache (DSL), anstatt eine Allgemeine Sprache, und der andere ist ein architektonischer Ansatz (DDD) zu entwerfen und bauen Systeme.

Die ähnlichkeit ist, dass beide konzentrieren sich auf die spezifische Domäne.

Wikipediahttps://en.wikipedia.org/wiki/Domain-driven_design), hat eine gute Antwort:

DDD nicht speziell erfordern die Verwendung einer DSL -, aber es könnte sein verwendet, um zu helfen, definieren einen DSL-und support-Methoden wie domain-spezifische multimodeling.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top