36
Preciso de um Framework, mas Preciso de um Framework, mas qual usar? qual usar? Hébert Coelho de Oliveira

TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Embed Size (px)

Citation preview

Page 1: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Preciso de um Framework, mas Preciso de um Framework, mas qual usar? qual usar? Hébert Coelho de Oliveira

Page 2: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

About me• Pós: MIT em Engenharia de Software com Java

• Analista Desenvolvedor Sênior: 10 anos+

• Professor de Java para Pós Graduação

• Criador do blog uaiHebert.com

• Certificações: SCJP, SCWCD, OCBCD, OCJPAD

• Livro em andamento: JPA Eficaz

• Revisor do Livro: Primefaces CookBook

• Criador do EasyCriteria

Page 3: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
Page 4: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

MinhocaMinhoca

Page 5: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

O que veremos:O que veremos:Servidores

IDEs

View

Business

Infra

Page 6: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

ServidoresServidoresComo escolher o melhor servidor?◦ Material de pesquisa◦ Facilidade de Configuração◦ Necessidade de “re-deploy”◦ Preparo do artefato◦ Cuidado com “blogs”◦ Implementações que podem dar problema

(JSF)◦ Capacidade

Page 7: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Servidores - BenchmarkServidores - Benchmark http://antoniogoncalves.org/2011/10/20/o-java-ee-6-application-servers-where-art-thou/

http://hwellmann.blogspot.com.br/2011/06/java-ee-6-server-comparison.html

Page 8: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

ServidoresServidores Tomcat Jetty

JBoss Glassfish TomEE

Weblogic WebSphere

Page 9: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

IDEsIDEsEclipse

MyEclipse

Netbeans

Intellij

Page 10: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

ViewViewCuidado apenas com prática

Cuidado com “blogs”

Entenda a tecnologia

Page 11: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

ViewView

Action Based – (Push-Based)

Component Based – (Pull-Based)

Page 12: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – Action Based View – Action Based

Código Página

Page 13: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – Component BasedView – Component Based

Código Página

Page 14: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – Action x ComponentView – Action x ComponentAction◦ Maior controle do HTML◦ Menor curva de aprendizado◦ Cada ação geraria uma configuração específica

Component◦ Bom para reutilizar código/módulos◦ Design inicial agradável◦ Curva de aprendizado◦ Memória do servidor

Page 15: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – Struts 1 [AB]View – Struts 1 [AB]Vantagens Desvantagens

Configuração centralizada XML enorme

Formulários Grande curva de aprendizado

Tags Beans/HTML Péssima documentação

Validações Não é transparente

Dá foco ao MVC Abordagem rígida

Muito encontrado no mercado

Page 16: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – Struts 2 [AB]View – Struts 2 [AB]Vantagens Desvantagens

Fácil de Testar Compatibilidade

Suporte a Ajax Grande curva de aprendizado

Suporte a Anotações Documentação limitada

Diversas views Não é transparente

Plugins

Page 17: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – VRaptor [AB]View – VRaptor [AB]Vantagens Desvantagens

Fácil de Configurar Não tem muitas vagas

Integrações com outros frameworks

Alguns erros estranhos ainda acontecem

Bom suporte (GUJ)

Page 18: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – Stripes [AB]View – Stripes [AB]Vantagens Desvantagens

Não necessita de xml Comunidade pequena

Boa documentação Tem menos funcionalidades

Membros da comunidade são ativos

Page 19: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – JSF [CB]View – JSF [CB]Vantagens Desvantagens

Fácil de começar a usar Difícil de evoluir

Bibliotecas de ótima qualidade

Longa curva de aprendizado

Modularização

i18n – imagens

Front End oficial

Page 20: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – Wicket [CB]View – Wicket [CB]Vantagens Desvantagens

Boa documentação Bastante atenção as suas regras

Frequentemente atualizado Atualizações costumam quebrar código

Programadores experientes terão mais facilidade

Programadores inexperientes terão mais dificuldade

Pode levar a códigos de extrema complexidade

Page 21: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – Tapestry [CB]View – Tapestry [CB]Vantagens Desvantagens

Código bem próximo a um HTML

Documentação não muito detalhada

Boa produtividade para quem tem bom conhecimento

Curva de aprendizado bem inclinada

A cada nova versão, muitas funcionalidades estarão disponíveis

Upgrades demoram a chegar

Page 22: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

View – GWT [CB]View – GWT [CB]Vantagens Desvantagens

Garantia de compatibilidade do JavaScript

Poucos livros sobre o assunto

Grande empresa como investidora

A compilação de Java para JavaScript é lenta

Bom suporte de IDE Mais códigos do que JQuery

Integra com JUnit / JMock / TestNG

Page 23: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Business - EJBBusiness - EJBVantagens Desvantagens

Isolar a regra de negócio Especificação grande

Proteger em Firewall Extra Alta complexidade

Concurrent Access and Transaction Support

Muita chance de criar soluções complexas e que tenha um alto custo

JAAS

Pool/Caching

Clusterização

Page 24: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

PersistênciaPersistência

JDBC

JPA

MyBatis

Page 25: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Build ToolsBuild ToolsTem que ter?

Ant

Maven◦ JRebel

Gradle

Page 26: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Full stackFull stackSpring

JBoss Seam

OBS.: Guice

Page 27: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

JRebel Reports - TecnologiasJRebel Reports - Tecnologias http://zeroturnaround.com/rebellabs/developer-productivity-report-2012-

java-tools-tech-devs-and-data/

Page 28: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

JRebel Reports - IDEJRebel Reports - IDE

Page 29: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

JRebel Reports – Build ToolJRebel Reports – Build Tool

Page 30: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

JRebel Reports – ServerJRebel Reports – Server

Page 31: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

JRebel JRebel ReportsReportsViewView

Page 32: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Domain-Driven FrameworkDomain-Driven Frameworkopenxava

http://www.openxava.org/Isis

http://isis.apache.org/Roma Framework (Spring IOC)

http://www.romaframework.org/Tynamo (Tapestry)

http://tynamo.org/

Page 33: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Domain-Driven FrameworkDomain-Driven FrameworkNexopen (Spring)

http://nexopen.sourceforge.net/reference/0.4.0/html_single/

jmatter http://jmatter.org/

Vraptor e Spring ROO

Page 34: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Últimas ConsideraçõesÚltimas ConsideraçõesTécnicosTécnicosSuporte ao AjaxBookmark e RESTful URLValidação de dadosCapacidade de testesComo trata Submissão/RedirectFacilidades de i18nScaffolding

Page 35: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Últimas ConsideraçõesÚltimas ConsideraçõesSociais/ArquiteturaSociais/ArquiteturaEstá sendo muito utilizado?Como está a comunidade?Para aprender, tem material?Como é sua arquitetura?O código de um protótipo, é agradável?

Fácil? Complexo?Convenção sobre Configuração

Page 36: TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?

Dúvidas? ContatoDúvidas? Contatohttp://uaihebert.com

http://cv.uaihebert.com