camada de negócios de verdade com spring

33
www.fragmental.com.br Aumente o QI dos Seus Objetos Camada de Negócios de Verdade com Spring Phillip Calçado

Upload: elliando-dias

Post on 20-Jul-2015

1.194 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 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

Page 2: Camada de Negócios de Verdade com Spring

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...)

Page 3: Camada de Negócios de Verdade com Spring

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,...)

Page 4: Camada de Negócios de Verdade com Spring

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?)

Page 5: Camada de Negócios de Verdade com Spring

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ê?

Page 6: Camada de Negócios de Verdade com Spring

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?)

Page 7: Camada de Negócios de Verdade com Spring

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

Page 8: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 8

Introdução: Camadas, Objetos e Tudo Mais(Em VB não tem essas frescuras...)

Page 9: Camada de Negócios de Verdade com Spring

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?)

Page 10: Camada de Negócios de Verdade com Spring

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...)

Page 11: Camada de Negócios de Verdade com Spring

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...)

Page 12: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 12

Cadastrar Part icipante

Cadastrar Palestra

Se inscrever em Palestra

Registrar Presença em Palestra

Estórias:

Page 13: Camada de Negócios de Verdade com Spring

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.

Page 14: Camada de Negócios de Verdade com Spring

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?)

Page 15: Camada de Negócios de Verdade com Spring

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!)

Page 16: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 16

Duas Alternativas Típicas de Persistência(Você ainda sonha em não suar Banco de Dados?)

Page 17: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 17

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

Page 18: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 18

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

Page 19: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 19

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

Page 20: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 20

Duas Alternativas Típicas de Persistência(Cada um por si...)

Page 21: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 21

Duas Alternativas Típicas de Persistência(Cada um por si...)

Page 22: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 22

Duas Alternativas Típicas de Persistência(Cada um por si...)

Page 23: Camada de Negócios de Verdade com Spring

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.

Page 24: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 24

Pequena Introdução à IoC(Ele falou que me ligava...)

Page 25: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 25

Pequena Introdução à IoC(Ele falou que me ligava...)

Page 26: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 26

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

Page 27: Camada de Negócios de Verdade com Spring

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>

Page 28: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 28

Continuando a Iterar...

Page 29: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 29

Conclusão

?

Page 30: Camada de Negócios de Verdade com Spring

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

Page 31: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 31

O Workshop Continua em

Page 32: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 32

Contato

http:/ / www.fragmental.com.br

http:/ / www.guj.com.br

[email protected]

Page 33: Camada de Negócios de Verdade com Spring

www.fragmental.com.br Slide 33

Obrigado!Que Zahl os Acompanhe...

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