Este é um post disponível para assinantes MVPEste 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 Magazine 87
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 87
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 87
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
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 MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

Você está em:
canal Java
Publicidade
Rafael Van Boekel
Space do autor
Analista de sistemas, desenvolvedor certificado Java e entusiasta de metodologias ágeis
Space do autor


3
0
