Top Banner
Criando entidades “like a boss” Everton Emilio Tavares
18

Criando Entidades "Like a Boss"

Apr 15, 2017

Download

Technology

ezidiu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Criando Entidades "Like a Boss"

Criando entidades “like a boss”Everton Emilio Tavares

Page 2: Criando Entidades "Like a Boss"

Quem sou?

Programador por paixão desde 2002, onde começou com PHP5. Desde 2007 trabalha com Java no desenvolvimento de soluções empresariais, principalmente Web. 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.

Page 3: Criando Entidades "Like a Boss"
Page 4: Criando Entidades "Like a Boss"

Há vagas

!

Page 5: Criando Entidades "Like a Boss"

Sumula de Futebol

Page 6: Criando Entidades "Like a Boss"

Talk is cheap. Show me the code!https://github.com/ezidio/ticnova-sumula

Page 7: Criando Entidades "Like a Boss"

Like a Boss??

Page 8: Criando Entidades "Like a Boss"

ConsistênciaCaracterística de um corpo do ponto de vista da homogeneidade, coerência, firmeza, compacidade, resistência, densidade etc. dos seus elementos constituintes.

Page 9: Criando Entidades "Like a Boss"

A entidade deve garantir seu estado!

Campos obrigatórios;Bloquear modificações externas;

Page 10: Criando Entidades "Like a Boss"

Bibliotecas

// java.util (7+)variavel = Objects.requireNonNull(objeto);

// Google GuavaPreconditions.checkState(this.status.equals(PedidoStatus.ABERTO));Preconditions.checkArgument(valorMinimo <= valorMaximo);variavel = Preconditions.checkNotNull(objeto);

// Commons-lang 3.4variavel = 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

Page 11: Criando Entidades "Like a Boss"

InnerBuilder

Page 12: Criando Entidades "Like a Boss"

Fugindo do modelo anêmico

Page 13: Criando Entidades "Like a Boss"

Entidades e agregados

Page 14: Criando Entidades "Like a Boss"

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;

Page 15: Criando Entidades "Like a Boss"

Escolhendo corretamente seus Identificadores

Page 16: Criando Entidades "Like a Boss"

User Story

Dada uma escalação com 6 ou menos jogadores titularesQuando adiciona-la na sumulaEntão uma exceção deve ser lançada;

Dada uma escalação de 7 a 11 jogadores titularesQuando adiciona-la na sumulaEntão a escalação deve ser aceita;

Dada uma escalação com 12 ou mais jogadores titularesQuando adiciona-la na sumulaEntão uma exceção deve ser lançada.

Page 17: Criando Entidades "Like a Boss"

Perguntas?

Page 18: Criando Entidades "Like a Boss"

Obrigado! [email protected] [email protected] Twitter: @ezidiu