Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,224 views

Published on

Published in: Technology
  • Be the first to comment

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

  1. 1. Preciso de um Framework, masPreciso de um Framework, mas qual usar?qual usar? Hébert Coelho de Oliveira
  2. 2. 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
  3. 3. MinhocaMinhoca
  4. 4. O que veremos:O que veremos: Servidores IDEs View Business Infra
  5. 5. ServidoresServidores Como 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
  6. 6. 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
  7. 7. ServidoresServidores  Tomcat  Jetty  JBoss  Glassfish  TomEE  Weblogic  WebSphere
  8. 8. IDEsIDEs Eclipse MyEclipse Netbeans Intellij
  9. 9. ViewView Cuidado apenas com prática Cuidado com “blogs” Entenda a tecnologia
  10. 10. ViewView Action Based – (Push-Based) Component Based – (Pull-Based)
  11. 11. View – Action BasedView – Action Based Código Página
  12. 12. View – Component BasedView – Component Based Código Página
  13. 13. View – Action x ComponentView – Action x Component Action ◦ 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
  14. 14. 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
  15. 15. 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
  16. 16. 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)
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. Business - EJBBusiness - EJB Vantagens 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
  23. 23. PersistênciaPersistência JDBC JPA MyBatis
  24. 24. Build ToolsBuild Tools Tem que ter? Ant Maven ◦ JRebel Gradle
  25. 25. Full stackFull stack Spring JBoss Seam OBS.: Guice
  26. 26. JRebel Reports - TecnologiasJRebel Reports - Tecnologias  http://zeroturnaround.com/rebellabs/developer-productivity-report-2012- java-tools-tech-devs-and-data/
  27. 27. JRebel Reports - IDEJRebel Reports - IDE
  28. 28. JRebel Reports – Build ToolJRebel Reports – Build Tool
  29. 29. JRebel Reports – ServerJRebel Reports – Server
  30. 30. JRebelJRebel ReportsReports ViewView
  31. 31. Domain-Driven FrameworkDomain-Driven Framework openxava http://www.openxava.org/ Isis http://isis.apache.org/ Roma Framework (Spring IOC) http://www.romaframework.org/ Tynamo (Tapestry) http://tynamo.org/
  32. 32. Domain-Driven FrameworkDomain-Driven Framework Nexopen (Spring) http://nexopen.sourceforge.net/reference/0.4.0/html_single/ jmatter http://jmatter.org/ Vraptor e Spring ROO
  33. 33. Últimas ConsideraçõesÚltimas Considerações TécnicosTécnicos Suporte ao Ajax Bookmark e RESTful URL Validação de dados Capacidade de testes Como trata Submissão/Redirect Facilidades de i18n Scaffolding
  34. 34. Últimas ConsideraçõesÚltimas Considerações Sociais/ArquiteturaSociais/Arquitetura Está 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
  35. 35. Dúvidas? ContatoDúvidas? Contato http://uaihebert.com http://cv.uaihebert.com

×