DDD - Linguagem Ubíqua
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

DDD - Linguagem Ubíqua

on

  • 1,367 views

NerdT@lk na Serasa, uma apresentação sobre a Linguagem Ubíqua baseada na apresentação de DDD do mestre e amigo Sérgio Lopes da Caelum =D

NerdT@lk na Serasa, uma apresentação sobre a Linguagem Ubíqua baseada na apresentação de DDD do mestre e amigo Sérgio Lopes da Caelum =D

Statistics

Views

Total Views
1,367
Views on SlideShare
828
Embed Views
539

Actions

Likes
2
Downloads
4
Comments
0

20 Embeds 539

http://javawora.blogspot.com.br 274
http://www.javawora.blogspot.com.br 177
http://feedly.com 24
http://javawora.blogspot.com 23
http://www.javawora.blogspot.com 8
http://javawora.blogspot.in 8
http://feeds2.feedburner.com 4
http://javawora.blogspot.pt 3
http://javawora.blogspot.it 2
http://javawora.blogspot.com.tr 2
http://javawora.blogspot.ch 2
http://plus.url.google.com 2
http://javawora.blogspot.fr 2
http://digg.com 2
http://javawora.blogspot.com.es 1
http://www.javawora.blogspot.de 1
http://www.javawora.blogspot.it 1
http://smashingreader.com 1
http://javawora.blogspot.ru 1
http://www.plagium.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

DDD - Linguagem Ubíqua Presentation Transcript

  • 1. @bregaida eduardo.bregaida@br.experian.com
  • 2. Havia um grande local cheio de aeronaves de um ricaço que morreu. James seu sobrinho herdou este local e decidiu que queria abrir um negócio. Uma loja de aeronaves. E para isso era necessário um sistema...
  • 3. E aí Bregaida, beleza?! Estou precisando de um sistema para minha loja de aeronaves.
  • 4. Domain-Driven Design
  • 5. Domain-Driven Design
  • 6. Teremos Tupis, Cherokees, Aeroboeiros, Paulistinhas e outras aeronaves, com diferentes capacidades e potências.!
  • 7. ?
  • 8. Hum...! Então se eu fizer CapacidadeTO estender de AbstractAeronave, acho que vai dar certo!
  • 9. ?
  • 10. Negócio Complexo Pessoas Domain Linguagem de Negócio Problema Real
  • 11. Conversa Sobre o domínio Para criar um sistema
  • 12. Precisamos falar a mesma língua! Conversa Sobre o domínio Para criar um sistema
  • 13. Língua Ubíqua (Ubiquitous Language)
  • 14. Temos hangares aqui no nosso espaço, com vários aviões diferentes...
  • 15. Nosso cliente chegará no Hangar e usará o sistema para encontrar os melhores aviões para sua necessidade.
  • 16. Por exemplo, temos aviões de diferentes cores e capacidades.
  • 17. O cliente normalmente também pode escolher pela empresa fabricante (Embraer, Piper, Aviat, etc)
  • 18. Capacidade ! Aviao Cor ! ! -Cor -Capacidade - Fabricante (Potência, Quantidade Passageiros) -Nome Fabricante ! (Piper, Embraer, Aviate, Boeing, etc)
  • 19. Isso mesmo e nossos aviões possuem um nome e um prefixo que é sua identificação no Brasil.
  • 20. Capacidade ! Aviao ! Cor ! -Nome -id -Nome -Cor -Capacidade - Fabricante (Potência, Quantidade Passageiros) Fabricante ! (Piper, Embraer, Aviate, Boeing, etc)
  • 21. Exatamente, mas nosso cliente vai mesmo querer pesquisar por Fabricante e nome da aeronave.
  • 22. Repositório de aviões buscarPorNome buscarPorFabricante Aviao ! Cor ! -Nome -Prefixo -Nome -Cor -Capacidade - Fabricante Capacidade ! (Potência, Quantidade Passageiros) Fabricante ! (Piper, Embraer, Aviate, Boeing, etc)
  • 23. Aliás outra busca que quero é dado um avião quero saber quais os aviões com mesma potência.
  • 24. Creio que com esse nosso repositório fica mais fácil de saber, né?
  • 25. Repositório de aviões buscarPorNome buscarPorFabricante Aviao ! Cor ! -Nome -Prefixo -Nome -Cor -Capacidade - Fabricante -AviõesComMesmaPotência Capacidade ! (Potência, Quantidade Passageiros) Fabricante ! (Piper, Embraer, Aviate, Boeing, etc)
  • 26. public class Aviao { ! private Long id; private String nome; ! private Fabricante fabricante; private Cor cor; private Capacidade capacidade; ! } !
  • 27. public class Fabricante { ! private String nome; ! } //getters & setters ! ! ! public class Cor { ! private String nome; ! } //getters & setters ! ! public class Capacidade { ! private String potencia; private String quantidadePassageiro; ! } //getters & setters
  • 28. Repositório... BD? DAO? ! O que nosso cliente quer?
  • 29. public class AviaoRepository { ! ! } List<Aviao> getTodosAvioes(); List<Aviao> getAvioesPorNome(String nome); List<Aviao> getAvioesPorFabricante(Fabricante fabricante); List<Aviao> getAvioesPorCapacidade(Capacidade capacidade); Aviao getAviaoPorId(Long id);
  • 30. Como implementar o Repositório?
  • 31. Poxa é isso mesmo que eu queria, está ficando muito bom, porém esqueci que quero hangarar juntas as aeronaves com a mesma potência.!
  • 32. Model Código
  • 33. Model Código
  • 34. public class Aviao { //Códigos anteriores... public boolean possuemMesmaPotencia(Aviao outroAviao){ return this.capacidade.getPotencia().equals(outroAviao.getPotencia()); ! } !
  • 35. Domain-Driven Design • • • • • Voltado (driven) totalmente ao problema a ser resolvido (domain) Ubiquitous Language Funciona muito bem com Agile Modelos ricos (não anêmicos) Nomes importam!
  • 36. Não importa a tecnologia. O que importa é o domain.

  • 37. Obrigado! eduardo.bregaida@br.experian.com http://javawora.blogspot.com http://www.slideshare.net/eduardo.bregaida @bregaida