SlideShare uma empresa Scribd logo
1 de 45
Arquitetura de Camadas em Java™ Enterprise Edition™ Phillip Calçado
[object Object],[object Object],[object Object],Objetivos (Tentar dominar o mundo!) (Droga! Sabia que devia ter ido pro bar...) Não São Objetivos ,[object Object]
[object Object],Pré-Requisitos (Pentium IV, 512 MB RAM DDR,...)
(A gente veio aqui pra beber ou conversar?) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Agenda
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Quem é Você?
(Por que esse povo de Java fala tanto em camadas?) O que são Camadas
(Por que esse povo de Java fala tanto em camadas?) O que são Camadas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(Por que esse povo de Java fala tanto em camadas?) O que são Camadas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],(Das geladeiras pretas aos celulares) Camadas Físicas
(Das geladeiras pretas aos celulares) Camadas Físicas - Evolução ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],(“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 ) Camadas Lógicas
(“Ah, as famosas três camadas. Massa, recheio e cobertura. A culinária francesa em geral  me decepciona, mas as sobremesas são sempre ótimas. – Carlos Villela - GUJ) Camadas Lógicas - Evolução ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(O pecado original) A maioria esmagadora dos sistemas construídos usando  Java™ EE™ não são e  nunca serão  altamente distribuídos Camadas Físicas em Java EE™ ,[object Object],[object Object],[object Object],[object Object]
(Em VB não tem essas frescuras...) Camadas Lógicas em Java EE™ - Exemplos
(Ou: Não Fale com Estranhos) ,[object Object],[object Object],[object Object],[object Object],[object Object],Integração entre Camadas: Boas Praticas
(Como perder dinheiro fácil) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Integração entre Camadas: Más Praticas
(Quando a Sun vai atualizar aqueles diagramas?) Convidado Especial: DTOs Locais ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Integração entre Camadas: Más Praticas
(Do laod que se vê) Camada de Apresentação ,[object Object],[object Object],[object Object],[object Object]
(Ah, enfim algo produtivo...) Smart UI: A GUI que Sabe o que Faz Camada de Apresentação: Alternativas
(Ah, enfim algo produtivo...) Smart UI: A GUI que Sabe o que Faz Camada de Apresentação: Alternativas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(Toda vez que voce usa Struts, Deus mata um bebe foca. Pense nas pobres foquinhas, e parem de usar esse lixo. Por favooooooooooooooooooor. – Carlos Villela – GUJ) MVC: Subcamadas Camada de Apresentação: Alternativas
(Toda vez que voce usa Struts, Deus mata um bebe foca. Pense nas pobres foquinhas, e parem de usar esse lixo. Por favooooooooooooooooooor. – Carlos Villela – GUJ) MVC: Subcamadas Camada de Apresentação: Alternativas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(Alguém tem que controlar essa bagunça!) Camada de Aplicação ,[object Object],[object Object],[object Object]
(Não julgue um livro pela capa) Façade: Tudo na Interface Camada de Aplicação: Alternativas
(Não julgue um livro pela capa) Façade: Tudo na Interface Camada de Aplicação: Alternativas ,[object Object],[object Object],[object Object],[object Object],[object Object]
(Back to the future) Commands: A Herança Camada de Aplicação: Alternativas
(Back to the future) Commands: A Herança Camada de Aplicação: Alternativas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(Let the Show begin!) Camada de Negócios ,[object Object],[object Object],[object Object]
(Já vi esse filme antes...) Transaction Script: Quase um Command Camada de Negócios: Alternativas
(Já vi esse filme antes...) Transaction Script: Quase um Command Camada de Negócios: Alternativas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(Orientação a Objetos é sobre o que mesmo?) Domain Model: Como no Livro Camada de Negócios: Alternativas
(Orientação a Objetos é sobre o que mesmo?) Domain Model: Como no Livro Camada de Negócios: Alternativas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(Como assim?) Camada de Persistência ,[object Object],[object Object],[object Object]
(“Objetos são tabelas que acham que são gente...” - DBA Anônimo) Active Record: Não dá para Esquecer Camada de Persistência: Alternativas
(“Objetos são tabelas que acham que são gente...” - DBA Anônimo) Active Record: Não dá para Esquecer Camada de Persistência: Alternativas ,[object Object],[object Object],[object Object],[object Object],[object Object]
(Se era mais fácil usar um banco OO? NÃO!) Data Mapper: Ei, alguém sabe fazer isto! Camada de Persistência: Alternativas
(Se era mais fácil usar um banco OO? NÃO!) Data Mapper: Ei, alguém sabe fazer isto! Camada de Persistência: Alternativas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(Não era mais fácil usar um banco OO?) Active Mapped Record: O Melhor dos Dois Mundos Camada de Persistência: Alternativas
(Não era mais fácil usar um banco OO?) Active Mapped Record: O Melhor dos Dois Mundos Camada de Persistência: Alternativas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(Canhões, moscas...ah, você sabe!) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Quando Não Usar Camadas
Conclusão ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Autores Recomendados
GUJ - Fórum de Design
Contato http://www.fragmental.com.br http://www.riojug.org http://www.guj.com.br [email_address]
Que Zahl os Acompanhe... Obrigado!

Mais conteúdo relacionado

Mais de Phil Calçado

Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Phil Calçado
 
An example of Future composition in a real app
An example of Future composition in a real appAn example of Future composition in a real app
An example of Future composition in a real app
Phil Calçado
 
Evolutionary Architecture at Work
Evolutionary  Architecture at WorkEvolutionary  Architecture at Work
Evolutionary Architecture at Work
Phil Calçado
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in Scala
Phil Calçado
 
From a monolithic Ruby on Rails app to the JVM
From a monolithic  Ruby on Rails app  to the JVMFrom a monolithic  Ruby on Rails app  to the JVM
From a monolithic Ruby on Rails app to the JVM
Phil Calçado
 
Applying Evolutionary Architecture on a Popular API
Applying Evolutionary Architecture on a  Popular APIApplying Evolutionary Architecture on a  Popular API
Applying Evolutionary Architecture on a Popular API
Phil Calçado
 
SoundCloud Masterclass on Brazil
SoundCloud Masterclass on BrazilSoundCloud Masterclass on Brazil
SoundCloud Masterclass on Brazil
Phil Calçado
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...
Phil Calçado
 
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
Phil Calçado
 

Mais de Phil Calçado (20)

Ten Years of Failing Microservices
Ten Years of Failing MicroservicesTen Years of Failing Microservices
Ten Years of Failing Microservices
 
The Next Generation of Microservices
The Next Generation of MicroservicesThe Next Generation of Microservices
The Next Generation of Microservices
 
The Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 BrisbaneThe Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 Brisbane
 
The Economics of Microservices (2017 CraftConf)
The Economics of Microservices  (2017 CraftConf)The Economics of Microservices  (2017 CraftConf)
The Economics of Microservices (2017 CraftConf)
 
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
 
Finagle @ SoundCloud
Finagle @ SoundCloudFinagle @ SoundCloud
Finagle @ SoundCloud
 
A Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing OrganisationsA Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing Organisations
 
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
 
Rhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a FunctionRhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a Function
 
ScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a FunctionScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a Function
 
Finagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloudFinagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloud
 
An example of Future composition in a real app
An example of Future composition in a real appAn example of Future composition in a real app
An example of Future composition in a real app
 
APIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog FoodAPIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog Food
 
Evolutionary Architecture at Work
Evolutionary  Architecture at WorkEvolutionary  Architecture at Work
Evolutionary Architecture at Work
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in Scala
 
From a monolithic Ruby on Rails app to the JVM
From a monolithic  Ruby on Rails app  to the JVMFrom a monolithic  Ruby on Rails app  to the JVM
From a monolithic Ruby on Rails app to the JVM
 
Applying Evolutionary Architecture on a Popular API
Applying Evolutionary Architecture on a  Popular APIApplying Evolutionary Architecture on a  Popular API
Applying Evolutionary Architecture on a Popular API
 
SoundCloud Masterclass on Brazil
SoundCloud Masterclass on BrazilSoundCloud Masterclass on Brazil
SoundCloud Masterclass on Brazil
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...
 
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
 

Arquitetura de Camadas em Java EE - Maraton4Java 2005

  • 1. Arquitetura de Camadas em Java™ Enterprise Edition™ Phillip Calçado
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. (Por que esse povo de Java fala tanto em camadas?) O que são Camadas
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. (Em VB não tem essas frescuras...) Camadas Lógicas em Java EE™ - Exemplos
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. (Ah, enfim algo produtivo...) Smart UI: A GUI que Sabe o que Faz Camada de Apresentação: Alternativas
  • 20.
  • 21. (Toda vez que voce usa Struts, Deus mata um bebe foca. Pense nas pobres foquinhas, e parem de usar esse lixo. Por favooooooooooooooooooor. – Carlos Villela – GUJ) MVC: Subcamadas Camada de Apresentação: Alternativas
  • 22.
  • 23.
  • 24. (Não julgue um livro pela capa) Façade: Tudo na Interface Camada de Aplicação: Alternativas
  • 25.
  • 26. (Back to the future) Commands: A Herança Camada de Aplicação: Alternativas
  • 27.
  • 28.
  • 29. (Já vi esse filme antes...) Transaction Script: Quase um Command Camada de Negócios: Alternativas
  • 30.
  • 31. (Orientação a Objetos é sobre o que mesmo?) Domain Model: Como no Livro Camada de Negócios: Alternativas
  • 32.
  • 33.
  • 34. (“Objetos são tabelas que acham que são gente...” - DBA Anônimo) Active Record: Não dá para Esquecer Camada de Persistência: Alternativas
  • 35.
  • 36. (Se era mais fácil usar um banco OO? NÃO!) Data Mapper: Ei, alguém sabe fazer isto! Camada de Persistência: Alternativas
  • 37.
  • 38. (Não era mais fácil usar um banco OO?) Active Mapped Record: O Melhor dos Dois Mundos Camada de Persistência: Alternativas
  • 39.
  • 40.
  • 41.
  • 42.
  • 43. GUJ - Fórum de Design
  • 44. Contato http://www.fragmental.com.br http://www.riojug.org http://www.guj.com.br [email_address]
  • 45. Que Zahl os Acompanhe... Obrigado!