Mundo novo com cdi

2,178 views

Published on

Um ensaio sobre mudanças no design de aplicações encorajadas pelo CDI e auxiliadas pelo Seam 3

Published in: Technology
  • Be the first to comment

Mundo novo com cdi

  1. 1. Mundo novo com CDI Um ensaio sobre as mudanças encorajadas pelo CDI + Seam 3Monday, May 16, 2011
  2. 2. Quem sou eu ? • Analista no PD da Softplan • Seam 3 Contributor • Hobbyist game programmer • Espião da CIAMonday, May 16, 2011
  3. 3. AgendaMonday, May 16, 2011
  4. 4. Agenda • ContextualizaçãoMonday, May 16, 2011
  5. 5. Agenda • Contextualização • Uma rápida introdução ao CDIMonday, May 16, 2011
  6. 6. Agenda • Contextualização • Uma rápida introdução ao CDI • Uma rapidíssima introdução ao Seam 3Monday, May 16, 2011
  7. 7. Agenda • Contextualização • Uma rápida introdução ao CDI • Uma rapidíssima introdução ao Seam 3 • simplicidade com CDIMonday, May 16, 2011
  8. 8. ContextualizaçãoMonday, May 16, 2011
  9. 9. Aplicações Web na históriaMonday, May 16, 2011
  10. 10. Ascensão do Java • CGI • Servlet • Servlet + JSP • Templating, tag libraries • A era dos frameworksMonday, May 16, 2011
  11. 11. Struts, Hibernate, Spring • Praticamente impossível desenvolver uma aplicação em J2EE puro • Frameworks diferentes para abstrair necessidades das aplicações • Abstração de dados • Inversão de Controle • Controle de fluxoMonday, May 16, 2011
  12. 12. JEE 5 • JPA • EJB3 • JSF1.2 • Annotations • ...Monday, May 16, 2011
  13. 13. Seam • A cola necessária para juntar JSF e EJB • Contextos e Injeção de dependênciaMonday, May 16, 2011
  14. 14. A verdadeira história • Um king cansado de lazyInitializationExceptionsMonday, May 16, 2011
  15. 15. Quem nunca viu bizarrices assim? • getCustomerWithAddress() • getCustomerWithFoo() • getCustomerWithFooAndBar()Monday, May 16, 2011
  16. 16. JEE6 • CDI • JSF2 • JPA2 • EJB3.1 • ...Monday, May 16, 2011
  17. 17. Principais objetivos do CDI • Cola Standard entre JSF e EJB • Beans injetáveis e com ciclo de vida gerenciado • Baixo acoplamento • TypeSafe • AOP e EventosMonday, May 16, 2011
  18. 18. “CDI simplifies and sanitizes the API for DI and AOP”Monday, May 16, 2011
  19. 19. “CDI simplifies and sanitizes the API for DI and AOP” Rick HightowerMonday, May 16, 2011
  20. 20. “CDI é foda!”Monday, May 16, 2011
  21. 21. “CDI é foda!” euMonday, May 16, 2011
  22. 22. “Designing with CDI is a road to be discovered, specially when we consider the event handling feature”Monday, May 16, 2011
  23. 23. “Designing with CDI is a road to be discovered, specially when we consider the event handling feature” eu tambémMonday, May 16, 2011
  24. 24. E o seam? como ficou nessa história?Monday, May 16, 2011
  25. 25. Seam’s mission is to provide a fully- integrated development platform for building rich, standards-based internet applications tailored for traditional and cloud developmentMonday, May 16, 2011
  26. 26. Chegamos aonde eu queriaMonday, May 16, 2011
  27. 27. Monday, May 16, 2011
  28. 28. abordagens mais pragmáticasMonday, May 16, 2011
  29. 29. ECB Pattern • Entity - Control - Boundary EJB CDI Bean JPAMonday, May 16, 2011
  30. 30. CEC Pattern • CDI - EJB - CDI EJB CDI Bean JPAMonday, May 16, 2011
  31. 31. CEC Pattern • CDI - EJB - CDI EJB CDI Bean JPAMonday, May 16, 2011
  32. 32. CEC Pattern • CDI - EJB - CDI CDI bean EJB CDI Bean JPAMonday, May 16, 2011
  33. 33. CEC Pattern • CDI - EJB - CDI Presenter CDI bean EJB CDI Bean JPAMonday, May 16, 2011
  34. 34. SimplicidadeMonday, May 16, 2011
  35. 35. Objetivos • Arquitetura limpa • Menos código, menos bugs • Maior produtividade • Mais facilidades com testesMonday, May 16, 2011
  36. 36. arquitetura comumMonday, May 16, 2011
  37. 37. javaee 5Monday, May 16, 2011
  38. 38. javaee 6Monday, May 16, 2011
  39. 39. Calma!Monday, May 16, 2011
  40. 40. Monday, May 16, 2011
  41. 41. Monday, May 16, 2011
  42. 42. E para as actions?Monday, May 16, 2011
  43. 43. Problemas: • Mensagens para a interface • Controle de fluxoMonday, May 16, 2011
  44. 44. Mensagens para UI • O uso de MessagesAPI do SeamMonday, May 16, 2011
  45. 45. Controle de fluxo • Caso Típico de sucesso e erro • A validação pode ser feita antes de chegar no serviço (Bean Validations) • Em caso de exceções elas podem ser capturadas desacopladamente e fazer redirecionamentos. (Seam Catch )Monday, May 16, 2011
  46. 46. JSF Navigation RulesMonday, May 16, 2011
  47. 47. xml??Monday, May 16, 2011
  48. 48. controlador: Faces Servlet JSF2 complete Reference, pagina 12 • JSF CompleteMonday, May 16, 2011
  49. 49. Monday, May 16, 2011
  50. 50. e lógica de apresentação?Monday, May 16, 2011
  51. 51. Model View PresenterMonday, May 16, 2011
  52. 52. Cuidado! • Analise sempre seu caso • Simplifique sempre que possível.Monday, May 16, 2011
  53. 53. Referências • http://seamframework.org/ • http://www.jcp.org/en/jsr/detail?id=299 • http://www.adam-bien.com/Monday, May 16, 2011
  54. 54. Obrigado! • Contato: José Rodolfo Freitas joserodolfo.freitas@gmail.com • Apoio: Softplan/Poligraph http://talentos.softplan.com.br • Follow on Twitter: @joserodolfo_f • Blog techblog.joserodolfo.comMonday, May 16, 2011

×