boas práticas no desenvolvimento de regras de negócio - java

20
DB1 Informática Software e Consultoria Boas práticas no desenvolvimento de regras de negócio; 07/03/2012

Upload: db1-informatica

Post on 11-Jun-2015

2.919 views

Category:

Documents


4 download

DESCRIPTION

Direitos reservados.Material editado para publicação. Treinamento sobre Boas práticas no desenvolvimento de regras de negócio - Java.

TRANSCRIPT

Page 1: Boas práticas no desenvolvimento de regras de negócio - Java

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DB1 Informática: Software e Consultoria 20

Maiores informações:Portal de treinamentos

[email protected]

Agradecimentos