Pangea

Comunidade de Arquitetura de Software

Recentemente baixei o aplicativo de exemplo para implementação de DDD do site Domain-Driven Design Community. Como o aplicativo foi escrito em Java e eu não tenho nenhuma IDE que suporte essa linguagem, me contentei em ler algumas páginas HTML com comentários sobre o aplicativo. Gostei das páginas que falavam sobre as camadas de aplicação e domínio. Tem ótimas definições sobre essas camadas.

Abaixo vou transcrever esses comentários, primeiro em inglês e depois em uma tradução livre de minha autoria:

Aplicação:

Original: “This is the application layer: code that’s needed for the application to performs its tasks. It defines, or is defined by, use cases. It is thin in terms of knowledge of domain business logic, although it may be large in terms of lines of code. It coordinates the domain layer objects to perform the actual tasks. This layer is suitable for spanning transactions, security checks and high-level logging.

Trandução: “Camada de aplicação: contêm o código necessário para a aplicação executar uma determinada tarefa. Define ou é definido pelos casos de uso. É uma camada fina em termos de conhecimento da lógica de domínio do negócio, embora ela pode ser grande em termos de linhas de código. Coordena os objetos da camada de domínio para executar a tarefa atual. Esta camada é mais apropriada para abordar as transações, checagens de segurança e auditoria.”

Domínio:

Original: “The domain model, services and repository interfaces. This is the central part of the application. The ubiquitous language is used in classes, interfaces and method signatures, and every concept in here is familiar to a expert in the cargo shiping domain. There is no infrastructure or user interface related code here,
except for things like transactional and security metadata which is likely to be relevant to a domain expert.

Tradução: “Modelo do domínio, serviços e interfaces dos repositórios. Esta é a parte central do aplicativo. A linguagem obiqua é usada nessas classes, interfaces e assinaturas dos métodos, e todo conceito dentro dessa camada é familiar para o especialista no domínio de transporte de cargas. Não existe código da infraestrutura ou interface do usuário relacionada aqui, exceto para coisas como transação e informações de segurança os quais, provavelmente, são relevantes para o especialista do domínio”

Modelo do domínio:

Original: “This is the heart of the application. Each aggregate is contained in its own subpackage, along with the repository interface, factories and exceptions where applicable.

Tradução: “Este é o coração do aplicativo. Cada agregação está contida em seu respectivo módulo, junto com a interface do repositório, factories e exceções quando aplicável.”

Serviços do domínio:

Original: “Those services that may be implemented purely using the domain layer have their implementations here, other implementations may be part of the aplication or infrastructure layers.”

Tradução: “Estes serviços podem ser implementados na camada de domínio ou ter a sua implementação como parte das camadas de aplicação e infraestrutura.”

Fonte: http://dddsample.sourceforge.net/

[]‘s
Eduardo Ernandes da Silva
Arquiteto de Sistemas
Blog Arquitetura de Sistemas .NET

Exibições: 54

Tags: DDD, Design, Domain-Driven

Comentar

Você precisa ser um membro de Pangea para adicionar comentários!

Entrar em Pangea

Comentário de Eduardo Ernandes da Silva em 18 maio 2010 às 10:57
Diogo,

baixei o exemplo do livro ".NET DDD with C#..." e achei muito interessante a implementação utilizada. Porém, não entendi a implementação da camada de aplicação. No exemplo, essa camada só tem uma classe chamada UserSession. Como não li o livro, vou precisar da sua ajuda.

[]'s
Eduardo
Comentário de Diogo Damiani Ferreira em 17 maio 2010 às 23:40
Aqui tem um projeto completo de exemplo utilizando DDD com .NET: http://dddpds.codeplex.com/

É o código que foi desenvolvido e comentado no livro: .NET Domain-Driven Design with C#: Problem-Design-Solution do Tim McCarthy.
Comentário de Diogo Damiani Ferreira em 17 maio 2010 às 23:34
Eduardo,

Todos os exemplos do livro citado pelo Adriano são feitos em C#. Além disso, a leitura é muito boa! Vale a pena!
Comentário de Adriano Tavares em 13 maio 2010 às 2:46
Eduardo,
o capitulo 6 Preparing for Infrastructure do livro Applying Domain-Driven Design and Patterns tem exemplos em C#.

Link: http://ptgmedia.pearsoncmg.com/images/0321268202/samplechapter/Nils...

Fórum

TOGAF

Iniciado por Donaldo Dagnone 26 Maio. 0 Respostas

Agile is dead

Iniciado por Jaguaraci Silva. Última resposta de Randolf Loureiro Costa Brito 26 Maio. 1 Resposta

Aquele Blog de SOA

Iniciado por Jose Luis Braga. Última resposta de Randolf Loureiro Costa Brito 26 Maio. 2 Respostas

Modelagem de Serviço nas Empresas - Service Design

Iniciado por José Valdvogel de Almeida Junior. Última resposta de Douglas Lara 26 Maio. 2 Respostas

Opinião sobre especificação arquitetural

Iniciado por Bruno Costa. Última resposta de SMOKOVECK FLORENCIO 23 Maio. 9 Respostas

Badge

Carregando...

Parcerias

  

© 2014   Criado por Adriano Tavares.

Badges  |  Relatar um incidente  |  Termos de serviço

Offline

Vídeo ao vivo