Camada de Negócios de Verdade com Spring
-
Upload
elliando-dias -
Category
Technology
-
view
1.194 -
download
0
Transcript of Camada de Negócios de Verdade com Spring
www.fragmental.com.br
Aumente o QI dos Seus Objetos
Camada de Negócios
de Verdade com Spring
Phillip Calçado
www.fragmental.com.br Slide 2
• Workshop de Projeto de Software Orientado a Objetos• Apresentar e discut ir técnicas “alternat ivas” para
aplicações em POO• Criar a camada de negócios baseada em objetos
inteligentes• Introduzir e ut ilizar o IoC (com o Spring Framework) para
integração entre camadas• Se divert ir no processo
Objetivos
Não São Objetivos
• Utilizar mais que o necessário do Spring (IoC básico)• Fazer uma aplicação completa• Mudar as suas convicções, sua cabeça, sua religião, seu
t ime de futebol...
(Tentar dominar o mundo!)
(Droga! Sabia que devia ter me inscrito no outro curso...)
www.fragmental.com.br Slide 3
• Orientação a Objetos, Java, JEE, Eclipse, Web... o de sempre!
• Bom senso• Vontade de Debater
Pré- Requisitos(Pentium IV, 512 MB RAM DDR,...)
www.fragmental.com.br Slide 4
• Quem é Você?• Introdução: Camadas, Objetos e Tudo Mais• A Camada de Negócios• Quando Não Usar Uma• Nosso Desafio de Hoje• Estórias• Modelando o Domínio• Duas Alternat ivas Típicas de Persistência• Pequena Introdução à IoC• Integrando Nossa Primeira Versão (e rezando pra
funcionar)• Conclusão
Agenda(A gente veio aqui pra beber ou conversar?)
www.fragmental.com.br Slide 5
• Phillip Calçado, a.k.a. Shoes• Programador desde 1996• Com Java desde 2003 (“¡ adios, C+ + !”)• Colaborador do GUJ• JUG Leader do RioJUG• Consultor, instrutor, coach• Diversos projetos open- source (alguns chegaram até a ter
uma versão 1.0!)• Atualmente t rabalhando com aplicações em redes GSM
(NÃO É JME!!!)
Quem é Você?
www.fragmental.com.br Slide 6
Introdução: Camadas, Objetos e Tudo Mais
• Divisão Lógica de componentes de software(layer) ou hardware(t ier)
• Separam componentes por responsabilidade comum
• Se comunicam de cima para baixo (quase sempre)
• Camadas Famosas:– TCP/ IP– Sistemas Operacionais– Java– .Net
(Por que esse povo de Java fala tanto em camadas?)
www.fragmental.com.br Slide 7
Introdução: Camadas, Objetos e Tudo Mais(“Ah, as famosas tres camadas. Massa, recheio e cobertura. A culinaria francesa em geral me decepciona, mas as sobremesas sao sempre otimas. “ – Carlos Villela - GUJ )
• 2, 3, 4 ou N Camadas? • Camada de
Apresentação é a Interface
• Camada de Aplicação coordena casos de uso
• Camada de Negócios é onde f ica a Lógica de negócios
• Camada de Persistência são os componentes que salvam o estado do objeto em algum lugar
www.fragmental.com.br Slide 8
Introdução: Camadas, Objetos e Tudo Mais(Em VB não tem essas frescuras...)
www.fragmental.com.br Slide 9
• Chamada também de Camada de Domínio• Modela o domínio do problema• Sempre independente da interface• Preferencialmente Independente da Implementação de
Persistência• É o sistema!
A Camada de Negócios(Como você acha que os dados vão parar nas tabelinhas?)
www.fragmental.com.br Slide 10
• Não Compensa em:• Aplicações simples que não fazem mais que t irar e
colocar registros no banco• Protót ipos• Relatórios Pesados
• Soluções Menos Problemáticas:• Shell Scripts• Ruby on Rails/ PHP• Ferramentas do SGBD• Ferramentas RAD
Quando Não Usar Uma(Canhões, moscas...)
www.fragmental.com.br Slide 11
• Sistema para Cadastro em Eventos• Protót ipo da interface web• Protót ipo da Persistência (DAO genérico em memória)
Nosso Desafio de Hoje(Caso queiram aceitá- lo...)
www.fragmental.com.br Slide 12
Cadastrar Part icipante
Cadastrar Palestra
Se inscrever em Palestra
Registrar Presença em Palestra
Estórias:
www.fragmental.com.br Slide 13
Modelando o Domínio(Onde foi parar meu DER?)
Eric Evans, Domain-Driven Design
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.
www.fragmental.com.br Slide 14
• 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
Modelando o Domínio(Como assim não tem DER?)
www.fragmental.com.br Slide 15
• 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• Explique seu f luxo de at ividades. Faz sent ido para
eles?
Modelando o Domínio(Nunca vi disso..coisa de Java, tinha que ser!)
www.fragmental.com.br Slide 16
Duas Alternativas Típicas de Persistência(Você ainda sonha em não suar Banco de Dados?)
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(Deixa comigo!)
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
Duas Alternativas Típicas de Persistência(Cada um por si...)
www.fragmental.com.br Slide 23
Pequena Introdução à IoC(Ele falou que me ligava...)
The Hollywood Principle
Don’t call us, we’ll call you.
www.fragmental.com.br Slide 24
Pequena Introdução à IoC(Ele falou que me ligava...)
www.fragmental.com.br Slide 25
Pequena Introdução à IoC(Ele falou que me ligava...)
www.fragmental.com.br Slide 26
Integrando Nossa Primeira Versão (e rezando pra funcionar)(Este bean encontra- se fora de área ou desligado.)
www.fragmental.com.br Slide 27
Integrando Nossa Primeira Versão (e rezando pra funcionar)(Este bean encontra- se fora de área ou desligado.)
<beans>
<bean class=“GerenciadorCoisas" id=“gerenciador">
<property name=“repositorioDeCoisas">
<ref bean=“repositorio"/>
</property>
</bean>
<bean class=“DaoCoisas" id=“repositorio“ />
</beans>
www.fragmental.com.br Slide 28
Continuando a Iterar...
www.fragmental.com.br Slide 29
Conclusão
?
www.fragmental.com.br Slide 30
• Craig Larman – Applying UML and Patterns• Eric Evans – Domain- Driven Design• Bertrand Meyer – Object- Oriented Software Construct ion• Martin Fowler – Refactoring, PEAI, Analisys Patterns...• Rod Johnson – J2EE Developmen Without EJB• Bruce Tate & Justin Gehtland – Better, Faster, Lighter
Java• Meilir Page- Jones – Fundamentals of Object- Oriented
Design Using UML
Autores Recomendados
www.fragmental.com.br Slide 31
O Workshop Continua em
www.fragmental.com.br Slide 32
Contato
http:/ / www.fragmental.com.br
http:/ / www.guj.com.br
www.fragmental.com.br Slide 33
Obrigado!Que Zahl os Acompanhe...
(Espero vocês no O’Malley’s!!!)