Camada de Negócios de Verdade com Spring

1,476 views

Published on

Published in: Technology, Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,476
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
50
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Camada de Negócios de Verdade com Spring

  1. 1. Aumente o QI dos Seus Objetos Cam ada de Negócios de Verdade com Spring Phillip Calçado www.fragmental.com.br
  2. 2. Objetivos (Tentar dominar o mundo!) • Workshop de Projet o de Software Orientado a Objetos • Apresent ar e discut ir técnicas “alt ernat ivas” para aplicações em POO • Criar a cam ada de negócios baseada em objet os int eligentes • Int roduzir e utilizar o IoC (com o Spring Fram ework) para int egração ent re cam adas • Se divert ir Objetivos Não São no processo (Droga! Sabia que devia ter me inscrito no outro curso...) • Ut ilizar m ais que o necessário do Spring (IoC básico) • Fazer um a aplicação com plet a • Mudar as suas convicções, sua cabeça, sua religião, seu t im e de fut ebol... www.fragmental.com.br Slide 2
  3. 3. Pré- Requisitos (Pentium IV, 5 1 2 MB RAM DDR,...) • Orient ação a Objetos, Java, JEE, Eclipse, Web... o de sem pre! • Bom senso • Vontade de Debat er www.fragmental.com.br Slide 3
  4. 4. Agenda (A gente veio aqui pra beber ou conversar?) • Quem é Você? • Int rodução: Cam adas, Objetos e Tudo Mais • A Cam ada de Negócios • Quando Não Usar Um a • Nosso Desafio de Hoje • Est órias • Modelando o Dom ínio • Duas Alt ernat ivas Típicas de Persist ência • Pequena Int rodução à IoC • Int egrando Nossa Prim eira Versão (e rezando pra funcionar) • Conclusão www.fragmental.com.br Slide 4
  5. 5. Quem é Você? • Phillip Calçado, a.k.a. Shoes • Program ador desde 1996 • Com Java desde 2003 (“¡ adios, C+ + !”) • Colaborador do GUJ • JUG Leader do RioJUG • Consultor, inst rut or, coach • Diversos projet os open- source (alguns chegaram até a t er um a versão 1.0!) • Atualm ente t rabalhando com aplicações em redes GSM (NÃO É JME!!!) www.fragmental.com.br Slide 5
  6. 6. Introdução: Camadas, Objetos e Tudo Mais esse povo de Java fala tanto em camadas?) (Por que • Divisão Lógica de com ponent es de soft ware(layer) ou hardware(tier) • Separam com ponent es por responsabilidade com um • Se com unicam de cim a para baix o (quase sem pre) • Cam adas Fam osas: – TCP/ IP – Sistem as Operacionais – Java – .Net www.fragmental.com.br Slide 6
  7. 7. Introdução: Camadas, Objetos e Tudo Maisfamosas tres camadas. Massa, recheio e cobertura. A culinaria francesa em geral (“Ah, as me decepciona, mas as sobremesas sao sempre otimas. “ – Carlos Villela - GUJ ) • 2, 3, 4 ou N Cam adas? • Camada de Apresentação é a Interface • Camada de Aplicação coordena casos de uso • Camada de Negócios é onde fica a Lógica de negócios • Camada de Persistência são os com ponent es que salvam o estado do objeto em algum lugar www.fragmental.com.br Slide 7
  8. 8. Introdução: Camadas, Objetos e Tudo Maisnão tem essas frescuras...) (Em VB www.fragmental.com.br Slide 8
  9. 9. A Camada de Negócios (Como você acha que os dados vão parar nas tabelinhas?) • Cham ada tam bém de Camada de Domínio • Modela o dom ínio do problem a • Sempre independent e da interface • Preferencialmente Independente da Im plem entação de Persist ência • É o sistema! www.fragmental.com.br Slide 9
  10. 10. Quando Não Usar Uma (Canhões, moscas...) • Não Compensa em: • Aplicações sim ples que não fazem m ais que t irar e colocar regist ros no banco • Protótipos • Relatórios Pesados • Soluções Menos Problemáticas: • Shell Script s • Ruby on Rails/ PHP • Ferram ent as do SGBD • Ferram ent as RAD www.fragmental.com.br Slide 10
  11. 11. Nosso Desafio de Hoje (Caso queiram aceitá- lo...) • Sist em a para Cadastro em Eventos • Protótipo da int erface web • Protótipo da Persistência (DAO genérico em m em ória) www.fragmental.com.br Slide 11
  12. 12. Estórias: Cadast rar Participant e Cadast rar Palestra Se inscrever em Palestra Registrar Presença em Palest ra www.fragmental.com.br Slide 12
  13. 13. Modelando o Domínio (Onde foi parar meu DER?) Um domain model não é um diagrama em particular; é a idéia que o diagrama que passar. Não é apenas o conhecimento na cabeça de um especialista no domínio; é uma seletiva abstração deste conhecimento rigorosamente organizada. Um diagrama pode representar e comunicar um modelo, assim como podem fazê-lo código bem escrito ou uma frase em inglês. Eric Evans, Domain-Driven Design www.fragmental.com.br Slide 13
  14. 14. Modelando o Domínio (Como assim não tem DER?) • Mantenha sempre sua implementação ligada com seu modelo • O melhor meio de não deixar um modelo ficar defasado • Crie uma linguagem e API baseadas no seu Modelo • Faça seus desenvolvedores falarem a mesma língua dos usuários www.fragmental.com.br Slide 14
  15. 15. Modelando o Domínio (Nunca vi disso..coisa de Java, tinha que ser!) • Se prepare para a evolução do Modelo • Conceitos importantes entram, supérfluos saem • Pratique Experimentação e Brainstorming • Pense, discuta, crie, teste • Busque feedback dos especialistas do domínio • Ex plique seu flux o de atividades. Faz sentido para eles? www.fragmental.com.br Slide 15
  16. 16. Duas Alternativas Típicas de Persistência (Você ainda sonha em não suar Banco de Dados?) www.fragmental.com.br Slide 16
  17. 17. Duas Alternativas Típicas de Persistência (Deixa comigo!) www.fragmental.com.br Slide 17
  18. 18. Duas Alternativas Típicas de Persistência (Deixa comigo!) www.fragmental.com.br Slide 18
  19. 19. Duas Alternativas Típicas de Persistência (Deixa comigo!) www.fragmental.com.br Slide 19
  20. 20. Duas Alternativas Típicas de Persistência (Cada um por si...) www.fragmental.com.br Slide 20
  21. 21. Duas Alternativas Típicas de Persistência (Cada um por si...) www.fragmental.com.br Slide 21
  22. 22. Duas Alternativas Típicas de Persistência (Cada um por si...) www.fragmental.com.br Slide 22
  23. 23. Pequena Introdução à IoC (Ele falou que me ligava...) Don’t call us, we’ll call you. The Hollywood Principle www.fragmental.com.br Slide 23
  24. 24. Pequena Introdução à IoC (Ele falou que me ligava...) www.fragmental.com.br Slide 24
  25. 25. Pequena Introdução à IoC (Ele falou que me ligava...) www.fragmental.com.br Slide 25
  26. 26. Integrando Nossa Primeira Versão (e rezando pra funcionar) (Este bean encontra- se fora de área ou desligado.) www.fragmental.com.br Slide 26
  27. 27. Integrando Nossa Primeira Versão (e rezando pra funcionar) (Este bean encontra- se fora de área ou desligado.) <beans> <bean class=“GerenciadorCoisasquot; id=“gerenciadorquot;> <property name=“repositorioDeCoisasquot;> <ref bean=“repositorioquot;/> </property> </bean> <bean class=“DaoCoisasquot; id=“repositorio“ /> </beans> www.fragmental.com.br Slide 27
  28. 28. Continuando a Iterar... www.fragmental.com.br Slide 28
  29. 29. Conclusão ? www.fragmental.com.br Slide 29
  30. 30. Autores Recomendados • Craig Larman – Applying UML and Pat t erns • Eric Evans – Dom ain- Driven Design • Bertrand Meyer – Object - Orient ed Software Construct ion • Martin Fowler – Refactoring, PEAI, Analisys Patt erns... • Rod Johnson – J2EE Developm en Wit hout EJB • Bruce Tate & Justin Gehtland – Bett er, Faster, Light er Java • Meilir Page- Jones – Fundam ent als of Object- Orient ed Design Using UML www.fragmental.com.br Slide 30
  31. 31. O Workshop Continua em www.fragmental.com.br Slide 31
  32. 32. Contato http:/ / www.fragmental.com.br http:/ / www.guj.com.br pcalcado@gm ail.com www.fragmental.com.br Slide 32
  33. 33. Obrigado! Que Zahl os Acompanhe... (Espero vocês no O’Malley’s!!!) www.fragmental.com.br Slide 33

×