Pergunta

O que é as diferenças e semelhanças entre Domain Specific Languages ??(DSL) e Domain Driven projeto (DDD)?

Foi útil?

Solução

Domain Driven projeto (DDD) é uma maneira de pensar e comunicar sobre os problemas e suas soluções.

Domínio Específico de Linguagem (DSL) é uma maneira de escrever código.

Eles são semelhantes porque ambos começam com a palavra "domínio". É isso, eu acho. : -)

Outras dicas

Domínio-Driven projeto enfatiza o papel do domínio do problema, como você criar o vocabulário fundamental, conceitos e modelo de objeto para o sistema que está sendo projetado.

Um Domain-Specific Language é uma notação para especificação ou implementação de partes específicas do sistema, orientado para as necessidades do praticante nesse domínio (ou seja, minimizar os aspectos "programmerese" da maioria das linguagens de programação ou de especificação).

Eu diria que eles estão de alguma forma relacionados e não apenas pela palavra "domínio". Depois de ter um bom design (accionada pelo domínio), que certamente irá ajudar na criação de uma DSL sólida.

"DDD não requer especificamente o uso de um DSL, embora ele poderia ser usado para ajudar a definir uma DSL." - Wikipedia

Eu acho que ambos têm como foco principal a redução do ruído na programação, DDD age sobre o ruído semântico e DSLs no ruído sintática.

Estes podem ajudar a entender a minha opinião:

http://fragmental.tw/2009/03/12/expessive design A-lâminas /

http://fragmental.tw/2008 / 04/20 / domínio-específicos-línguas-and-video-jogos /

Um elemento do DDD pode ser visto como a capacidade de desenvolver Ubiquitous Idiomas para falar com as partes interessadas sobre o domínio. Para o subconjunto desses da UL que são inequívoca e potencialmente executável, você pode optar por implementá-las usando um DSL interno ou externo.

Aqui está um vídeo de mim discutindo isso no site da DomainDriven:

http://domaindrivendesign.org/library/bell_gitlevich_2009

Os melhores cumprimentos, Peter

Wikipedia tem uma definição muito clara para DSL :

A linguagem específica de domínio prazo (DSL) tornou-se popular nos últimos anos no desenvolvimento de software para indicar uma linguagem de programação ou linguagem de especificação dedicado a um determinado domínio do problema, uma particularmente à representação problema técnica, e / ou uma determinada solução técnica.

Isto pode ser implementado como um conjunto de classes seguindo algum padrão consistente, um pouco de magia fantasia C ++ modelo, ou um compilador / interpretador que input interpreta texto livre para fazer o que quiser.

Eu acho que eles são de alguma forma relacionados (como Christophe colocá-lo), mas dois aspectos totalmente diferentes. Eu nem descartar de jop comunicado.

Para muito bem escrito informações sobre DSLs referem-se a conjunto de páginas Martin Fowler sobre DSLs (trabalho em andamento ), você pode começar com a exemplo , ou o definição . Outra boa leitura é a sua QandA .

DDD é baseado no modelo de domínio e, geralmente, pelo menos, um nível de abstração mais elevado do que o DSL. Ambos podem existir sem o outro, e como Christophe já disse, eles podem ser usados ??no mesmo projeto.

As diferenças, é uma abordagem para os sistemas que usam uma linguagem de domínio específico Language (DSL) em vez de um Propósito Geral Idioma construção eo outro é uma abordagem de arquitetura (DDD) para sistemas de construção concepção e.

A semelhança é que ambos foco no domínio específico.

Wikipedia ( https://en.wikipedia.org/wiki/Domain-driven_design) tem uma boa resposta:

DDD não exige especificamente o uso de um DSL, embora pudesse ser usado para ajudar a definir uma DSL e de apoio métodos como de domínio específico multimodeling.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top