Aumente o QI
dos Seus Objetos
 Cam ada de Negócios
de Verdade com Spring
       Phillip Calçado




       www.fragmental....
Objetivos
(Tentar dominar o mundo!)

• Workshop de Projet o de Software Orientado a Objetos
• Apresent ar e discut ir técn...
Pré- Requisitos
(Pentium IV, 5 1 2 MB RAM DDR,...)

• Orient ação a Objetos, Java, JEE, Eclipse, Web... o de
  sem pre!
• ...
Agenda
(A gente veio aqui pra beber ou conversar?)

• Quem é Você?
• Int rodução: Cam adas, Objetos e Tudo Mais
• A Cam ad...
Quem é Você?
• Phillip Calçado, a.k.a. Shoes
• Program ador desde 1996
• Com Java desde 2003 (“¡ adios, C+ + !”)
• Colabor...
Introdução: Camadas, Objetos e Tudo
Mais esse povo de Java fala tanto em camadas?)
 (Por que




• Divisão Lógica de
  com...
Introdução: Camadas, Objetos e Tudo
Maisfamosas tres camadas. Massa, recheio e cobertura. A culinaria francesa em geral
 (...
Introdução: Camadas, Objetos e Tudo
Maisnão tem essas frescuras...)
 (Em VB




                www.fragmental.com.br   Sl...
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
• Mo...
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
   ...
Nosso Desafio de Hoje
(Caso queiram aceitá- lo...)

• Sist em a para Cadastro em Eventos
• Protótipo da int erface web
• P...
Estórias:


     Cadast rar Participant e
     Cadast rar Palestra
     Se inscrever em Palestra
     Registrar Presença e...
Modelando o Domínio
(Onde foi parar meu DER?)




Um domain model não é um diagrama em
particular; é a idéia que o diagram...
Modelando o Domínio
(Como assim não tem DER?)

• Mantenha sempre sua implementação ligada com seu
  modelo
   • O melhor m...
Modelando o Domínio
(Nunca vi disso..coisa de Java, tinha que ser!)

• Se prepare para a evolução do Modelo
   • Conceitos...
Duas Alternativas Típicas de Persistência
(Você ainda sonha em não suar Banco de Dados?)




                             ...
Duas Alternativas Típicas de Persistência
(Deixa comigo!)




                  www.fragmental.com.br     Slide 17
Duas Alternativas Típicas de Persistência
(Deixa comigo!)




                  www.fragmental.com.br     Slide 18
Duas Alternativas Típicas de Persistência
(Deixa comigo!)




                  www.fragmental.com.br     Slide 19
Duas Alternativas Típicas de Persistência
(Cada um por si...)




                      www.fragmental.com.br   Slide 20
Duas Alternativas Típicas de Persistência
(Cada um por si...)




                      www.fragmental.com.br   Slide 21
Duas Alternativas Típicas de Persistência
(Cada um por si...)




                      www.fragmental.com.br   Slide 22
Pequena Introdução à IoC
(Ele falou que me ligava...)




Don’t call us, we’ll call you.
                                 ...
Pequena Introdução à IoC
(Ele falou que me ligava...)




                               www.fragmental.com.br   Slide 24
Pequena Introdução à IoC
(Ele falou que me ligava...)




                               www.fragmental.com.br   Slide 25
Integrando Nossa Primeira Versão
(e rezando pra funcionar)
(Este bean encontra- se fora de área ou desligado.)




       ...
Integrando Nossa Primeira Versão
(e rezando pra funcionar)
(Este bean encontra- se fora de área ou desligado.)


<beans>
 ...
Continuando a Iterar...




            www.fragmental.com.br   Slide 28
Conclusão




            ?
            www.fragmental.com.br   Slide 29
Autores Recomendados


• Craig Larman – Applying UML and Pat t erns
• Eric Evans – Dom ain- Driven Design
• Bertrand Meyer...
O Workshop Continua em




               www.fragmental.com.br   Slide 31
Contato



http:/ / www.fragmental.com.br

     http:/ / www.guj.com.br

          pcalcado@gm ail.com




               ...
Obrigado!
        Que Zahl os Acompanhe...




(Espero vocês no O’Malley’s!!!)



              www.fragmental.com.br   Sl...
Próximos SlideShares
Carregando em…5
×

Camada de Negócios de Verdade com Spring

1.501 visualizações

Publicada em

Publicada em: Tecnologia, Educação
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no 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

×