Boas práticas no desenvolvimento de regras de negócio - Java
-
Upload
db1-informatica -
Category
Documents
-
view
2.919 -
download
4
description
Transcript of Boas práticas no desenvolvimento de regras de negócio - Java
![Page 1: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/1.jpg)
DB1 InformáticaSoftware e Consultoria
Boas práticas no desenvolvimento de regras de negócio;
07/03/2012
![Page 2: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/2.jpg)
DB1 Informática: Software e Consultoria 2
Instrutor
Everton Emilio Tavares
Formado pela Unioeste de Cascavel - Paraná
5 anos de experiência com programação Java
![Page 3: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/3.jpg)
DB1 Informática: Software e Consultoria 3
• Problemas comuns de arquitetura:– Classes “amarradas” (Alto acoplamento);
– Classes com nome não intuitivo:• Dificuldade de encontrar o que precisa;• Alta dependência da IDE;
– Classes McGyver;
– Trechos de códigos gigantes!– ...
![Page 4: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/4.jpg)
DB1 Informática: Software e Consultoria 4
Dificuldades no desenvolvimento Java
E quando geralmente
descobrimos que a
arquitetura ta com
problema?
![Page 5: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/5.jpg)
DB1 Informática: Software e Consultoria 5
Dificuldades no desenvolvimento Java
MUDANÇA!
![Page 6: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/6.jpg)
DB1 Informática: Software e Consultoria 6
É tudo questão de
técnica!
![Page 7: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/7.jpg)
DB1 Informática: Software e Consultoria 7
Revendo alguns conceitos
• Orientação a objetos;• Coesão;• Acoplamento;• Domínio;• Modelo;
![Page 8: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/8.jpg)
DB1 Informática: Software e Consultoria 8
TDD
• TDD – Test Driven Development;– Não é relacionado a testes;
– Prática de Design;– Qualidade do código aumenta;
– Documentação do requisito aumenta;
![Page 9: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/9.jpg)
DB1 Informática: Software e Consultoria 9
1. Lista de testes;2. Inicie pela implementação mais simples; (Baby
steps)3. Comece a construção do seu código pela
construção do teste;4. Vermelho -> Verde -> Refatorar;5. Busque o verde o mais rápido possível
(Construa somente o necessário para o seu teste passar);
6. Construa testes semelhantes com dados distintos (Triangulação);
![Page 10: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/10.jpg)
DB1 Informática: Software e Consultoria 10
• Exemplo 1: Desenvolver uma classe que escreva a data passada em formato String;
– Caso a diferença de datas for de 1 dia, deve retornar “Ontem”;
– Caso a diferença de datas for de 2 dias, deve retornar “Antes de ontem”;
– ...
• Dica: 1 dia é igual a 86400000 millissegundos;
![Page 11: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/11.jpg)
DB1 Informática: Software e Consultoria 11
• Separando as classes conforme responsabilidades:
– Entity;– Value Objects;– Aggregate;– Factory;– Service;– Repository;
![Page 12: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/12.jpg)
DB1 Informática: Software e Consultoria 12
• Entity (ou entidades);
– Tudo que possui identidade;
– Objetos que serão rastreados durante o ciclo de vida da aplicação;
– Exemplo: Pessoa, Nota fiscal;
![Page 13: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/13.jpg)
DB1 Informática: Software e Consultoria 13
• Value Objects;– São as classes que são
constituídas pelo seu valor;– Preferencialmente Imutáveis;– Exemplo: Período, Dinheiro,
Característica de Animal;
![Page 14: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/14.jpg)
DB1 Informática: Software e Consultoria 14
• Aggregate;– São entidades
composta por outras entidades;
– Possui uma entidade raiz e todo o acesso é feito através dela;
– Quando a entidade raiz é removida, todas as outras são removidas tambem;
– Exemplo: Nota fiscal;
![Page 15: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/15.jpg)
DB1 Informática: Software e Consultoria 15
• Factory;– Responsável por
instanciar as entidades e ValueObjects;
– Não é sempre necessário;
![Page 16: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/16.jpg)
DB1 Informática: Software e Consultoria 16
• Service;– Responsável por
toda a regra de negócio que manipula mais de uma entidade;
– Exemplo: Atuais Services da DB1;
![Page 17: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/17.jpg)
DB1 Informática: Software e Consultoria 17
• Repository;– Responsável pelo
armazenamento das entidades e aggregates;
– Tudo que é da gravação ou remoção é feito nele;
![Page 18: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/18.jpg)
DB1 Informática: Software e Consultoria 18
• Exemplo 2: Modelando o Task;– Permite registrar as ordens de serviço;– Cada ordem de serviço tem um tempo total
previsto;– Cada ordem de serviço tem um status;– Uma ordem de serviço pode ter triagem
para os usuários;– Cada triagem pode ter várias execuções;– Uma execução não pode sobrepor outra
execução do mesmo usuário;– ...
![Page 19: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/19.jpg)
DB1 Informática: Software e Consultoria 19
• Como impedir que ocorra problemas arquiteturais?
• Como resolver os problemas arquiteturais?
![Page 20: Boas práticas no desenvolvimento de regras de negócio - Java](https://reader033.fdocumentos.com/reader033/viewer/2022060115/5579a2d1d8b42ac1148b48e4/html5/thumbnails/20.jpg)
DB1 Informática: Software e Consultoria 20
Maiores informações:Portal de treinamentos
Agradecimentos