DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Java e Domain-Driven Design na prática - Java Magazine 87

Este artigo trata da utilização do Domain-Driven Design (DDD) de forma prática, através da criação de um projeto de software do início ao fim. Com o objetivo de demonstrar os patterns propostos pela metodologia.






Java e Domain-Driven Design na prática
Desenvolvendo uma aplicação de dentro para fora
Descubra como atacar a complexidade no coração do software e desenvolver aplicações que reflitam o domínio do negócio

De que se trata o artigo:
Este artigo trata da utilização do Domain-Driven Design (DDD) de forma prática, através da criação de um projeto de software do início ao fim. Com o objetivo de demonstrar os patterns propostos pela metodologia.
Para que serve:
Desenvolver um projeto de software, seguindo esta metodologia, coloca a equipe de projetistas e desenvolvedores nos trilhos da orientação a objetos, em direção a um rico domain model. Ela permite que a equipe técnica tire maior proveito dos benefícios oferecidos pelo paradigma. Além de facilitar a comunicação com domain experts, devido ao foco no domínio, sustentado pelo DDD.
Em que situação o tema útil:
O DDD é útil para qualquer equipe de projeto que tenha como objetivo, modelar o domínio do negócio do cliente, de forma eficaz e eficiente. Ele também facilita a boa comunicação entre os envolvidos no projeto, pois permite a criação de um design que reflita o domínio, além de prover extensibilidade e reusabilidade, baseado no uso correto do paradigma orientado a objetos.
Java e Domain-Driven Design na prática:
Modelar sistemas de forma eficiente é um desafio para qualquer equipe de desenvolvimento. Neste contexto, o DDD surge como um apoio para este objetivo.
Este artigo apresenta a implementação, do início ao fim, de um sistema em Java, utilizando os frameworks JSF 2.0 e EJB 3.0, baseado na metodologia Domain-Driven Design (DDD). Desta forma, é possível criar um sistema com todos os benefícios oferecidos pela orientação a objetos, que reflita o domínio do negócio e com a complexidade reduzida, devido aos patterns propostos pela metodologia.
Os frameworks têm o importante papel de facilitar o trabalho da equipe de desenvolvimento, nos aspectos mais técnicos do processo de criação do software.


A metodologia Domain-Driven Design (DDD) , apresentada por Eric Evans no livro “Domain-Driven Design: Tackling Complexity in the Heart of Software”, oferece ferramentas para a construção de sistemas com foco no domínio do negócio do cliente.
Ela torna o trabalho da equipe de projeto mais eficiente, pois permite o desenvolvimento de sistemas de “dentro para fora”, isto é, com esforços concentrados na camada de modelo, onde toda a complexidade das regras de negócio deve existir.
Além disso, todo o processo de criação é apoiado na linguagem daqueles que irão utilizar a aplicação (Ubiquitous Language), desta forma, a comunicação entre equipe técnica e domain experts, torna-se mais clara.

Um domain expert é um membro da equipe de projeto cujo campo de atuação é o domínio da aplicação ao invés de desenvolvimento de software. Ele é um profundo conhecedor do negócio.

A ubiquitous language é uma linguagem estruturada em torno do modelo e deve ser utilizada por todos os membros do projeto para conectar todas as atividades.

Em resumo, o DDD introduz ao processo de desenvolvimento de software:
1.    Uma arquitetura em camadas para divisão de responsabilidades (veja o quadro “A arquitetura em camadas do DDD”);
2.    A ubiquitous language, que facilita a comunicação entre equipe técnica e domain experts, além de gerar documentação em nível de código;
3.    Patterns que simplificam e consolidam o design.

O objetivo deste artigo é demonstrar a utilização prática do DDD, através da implementação de um projeto em Java, com os frameworks JSF 2.0 e EJB 3.0, fazendo uso da API de persistência JPA, dentro de um container Java EE (GlassFish).
O artigo não tem a intenção de se aprofundar muito nos conceitos do DDD, a ideia principal é mostrá-lo de forma prática, associado ao desenvolvimento de uma aplicação.
Antes de começarmos a trabalhar no objetivo apresentado, precisamos de detalhes sobre o sistema que será desenvolvido.


A arquitetura em camadas do DDD
O DDD propõe uma arquitetura em camadas (veja a Figura Q1) para a divisão de responsabilidades de uma aplicação. Cada uma delas, deve se especializar em um aspecto particular do sistema. Esta especialização permite a criação de um design coeso e de fácil interpretação. O princípio básico é que cada elemento de uma camada, dependa apenas de outros elementos dessa mesma camada ou de camadas inferiores.
A arquitetura proposta pelo DDD é formada por:
1.    Camada de Apresentação (User Interface): Responsável por interpretar os comandos do usuário;
2.    Camada de Aplicação (Application): Não contém regras de negócio ou código referente ao domínio, apenas coordena tarefas e delega trabalhos;
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Rafael Van Boekel

Analista de sistemas, desenvolvedor certificado Java e entusiasta de metodologias ágeis


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
3   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03