Criando entidades “like
a boss”
Everton EmilioTavares
Quem sou?
Programador por paixão desde
2002, onde começou com
PHP5. Desde 2007 trabalha
com Java no desenvolvimento
de sol...
Sumula de
Futebol
Talk is cheap.
Show me the
code!
https://github.com/ezidio/ticnova-
sumula
Like a Boss??
Consistência
Característica de um corpo do
ponto de vista da homogeneidade,
coerência, firmeza, compacidade,
resistência, ...
A entidade
deve garantir
seu estado!
Campos obrigatórios;
Bloquear modificações
externas;
Bibliotecas
 // java.util (7+)
variavel = Objects.requireNonNull(objeto);
 // Google Guava
Preconditions.checkState(this...
InnerBuilder
Fugindo do
modelo
anêmico
Entidades e
agregados
Regras...
 7 - Mínimo de jogadores;
 11 - Máximo de jogadores;
 12 - Máximo de reservas;
 5 - Máximo de jogadores estr...
Escolhendo
corretamente
seus
Identificadores
UserStory
 Dada uma escalação com 6 ou menos jogadores titulares
Quando adiciona-la na sumula
Então uma exceção deve ser ...
Perguntas?
Obrigado!
 everton.tavares.dev@gmail.com
 everton.tavares@db1.com.br
 Twitter: @ezidiu
Criando Entidades "Like a Boss"
Criando Entidades "Like a Boss"
Próximos SlideShares
Carregando em…5
×

Criando Entidades "Like a Boss"

159 visualizações

Publicada em

Dicas de como criar entidades consistentes e de fácil manutenção e entendimento.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
159
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Criando Entidades "Like a Boss"

  1. 1. Criando entidades “like a boss” Everton EmilioTavares
  2. 2. Quem sou? Programador por paixão desde 2002, onde começou com PHP5. Desde 2007 trabalha com Java no desenvolvimento de soluções empresariais, principalmenteWeb. Acredita no desenvolvimento de software como uma forma de artesanato, e que o conhecimento e a disciplina é fundamental para a criação de um software de qualidade.
  3. 3. Sumula de Futebol
  4. 4. Talk is cheap. Show me the code! https://github.com/ezidio/ticnova- sumula
  5. 5. Like a Boss??
  6. 6. Consistência Característica de um corpo do ponto de vista da homogeneidade, coerência, firmeza, compacidade, resistência, densidade etc. dos seus elementos constituintes.
  7. 7. A entidade deve garantir seu estado! Campos obrigatórios; Bloquear modificações externas;
  8. 8. Bibliotecas  // java.util (7+) variavel = Objects.requireNonNull(objeto);  // Google Guava Preconditions.checkState(this.status.equals(PedidoStatus.ABERTO)); Preconditions.checkArgument(valorMinimo <= valorMaximo); variavel = Preconditions.checkNotNull(objeto);  // Commons-lang 3.4 variavel =Validate.notNull(objeto); variavel =Validate.notEmpty(objeto); variavel =Validate.notBlank(objeto); Validate.validState(this.status.equals(PedidoStatus.ABERTO)); Validate.isTrue(valorMinimo <= valorMaximo);  //Java assert – Não use! assert valorMinimo <= valorMaximo; https://www.securecoding.cert.org/confluence/display/java/MET01- J.+Never+use+assertions+to+validate+method+arguments
  9. 9. InnerBuilder
  10. 10. Fugindo do modelo anêmico
  11. 11. Entidades e agregados
  12. 12. Regras...  7 - Mínimo de jogadores;  11 - Máximo de jogadores;  12 - Máximo de reservas;  5 - Máximo de jogadores estrangeiros;  3 - Máximo de substituições no brasileirão;  Não pode dar gol a jogador que não está em campo;
  13. 13. Escolhendo corretamente seus Identificadores
  14. 14. UserStory  Dada uma escalação com 6 ou menos jogadores titulares Quando adiciona-la na sumula Então uma exceção deve ser lançada;  Dada uma escalação de 7 a 11 jogadores titulares Quando adiciona-la na sumula Então a escalação deve ser aceita;  Dada uma escalação com 12 ou mais jogadores titulares Quando adiciona-la na sumula Então uma exceção deve ser lançada.
  15. 15. Perguntas?
  16. 16. Obrigado!  everton.tavares.dev@gmail.com  everton.tavares@db1.com.br  Twitter: @ezidiu

×