Notícias
JSF 2 Scrum Whiteboard, por Eder Magalhães

Éder Magalhães Éder Magalhães
Minibio

Pós-Graduado em Análise e Desenvolvimento de Sistemas pela FIAP.

Experiência em desenvolvimento e consultoria em diversos segmentos como Educação, Banco, Call Center e Transportes.

Instrutor dos cursos Academia Java e Academia Web na Globalcode onde já ministrou mais de 1000 horas-aula.


Blog do Éder Éder no Globalcoders Éder no Twitter
Certificações

SCEA - 1ª fase, SCBCD, SCWCD e SCJP


Logo Academia Web

A carreira Academia Web é direcionada aos profissionais que já atuam com a plataforma Java, tais como programadores, arquitetos, analistas e gerentes técnicos, que desejam conhecer e trabalhar com os recursos web da plataforma Java Enterprise Edition (J2EE/Java EE), utilizando servlets e JavaServer Pages (JSP), Struts, JavaServer Faces (JSF), Hibernate e geração de relatórios com JasperReports.


Logo Core Web

Treinamento é especializado no desenvolvimento de aplicações Web usando tecnologia Java, especialmente JavaServer Faces (JSF).


TDC 2009

30/09/2009

JSF 2 Scrum Whiteboard, por Eder Magalhães


1. Recentemente você fez diversas colaborações para o JSF 2 Scrum Whiteboard, poderia comentar um pouco sobre as melhorias e correções realizados ?

Apesar conhecer o projeto nos bastidores da Globalcode, tive um contato maior no Casual Class Java EE 6, na apresentação do JSF 2. Achei bem interessante o cenário e como os novos recursos do framework foram encaixados na solução dos requisitos, porem enxerguei a possibilidade de utilizar alguns recursos enriquecendo ainda mais o case, a partir dai foi só diversão!

Os novos recursos implementados foram:

  • Adicionei o bookmarkable na escolha de skin (aparência) do aplicativo. Com este recurso o usuário consegue mudar o skin via parâmetros na url. Recurso suportado nas telas: principal, dashboard e na troca de skin.
  • Nas telas com suporte a bookmarkable utilizei o <f:event> com type=preRenderView para aciona um método java para evento de onload, fazendo a leitura dos parâmetros da url.
  • Coloquei o managed-bean que fornece os dados para as telas de Tarefas/Tasks, tanto na listagem quanto na edição, em CustomScope. O managed de Tarefas é criado quando a listagem for adicionada e eliminado quando o usuário carregar alguma tela de outro modulo, como por exemplo o Dashboard.
  • Criei uma managed-bean para armazenar as opções de estilo (blue, red, orange, yellow) no ApplicationScope. Esse managed-bean deve ser criado assim que o aplicativo for inicializado, por isso usei a property eager=true na annotation @ManagedBean.
  • Em algumas telas de cadastrado, substitui o <h:commandButton> pelo <h:button>. Esse componente "pula", ou melhor não considera o processo de conversão e validação do formulário no post-back.
  • Criei um novo composite-component o postitLink.xhtml que herda o postit.xhtml sobrescrevendo o <h:commandLink> pelo <h:link>. O conceito do <h:link> é o mesmo do <h:button>.

2. Qual o ambiente de desenvolvimento e execução que você utilizou?

Utilizei o Netbeans versão 6.8 M1, o Glassfish v3 e JDK 1.6. O desenvolvimento foi elaborado em 2 fases, na primeira usei um PC com Ubuntu 9.04/Linux, na outra em um MacBook com Mac OS X/Leopard.

3. Qual foi a complexidade de configurar o projeto?

Fiz o download e instalação do Netbeans com suporte Java EE, configurei o SubVersion (repositório de fontes) e fiz o checkout do projeto, esse processo durou por volta de 5 minutos. O projeto utiliza o Maven para gestão das dependências, dessa forma o desenvolvedor não perde tempo com instalação e configuração de bibliotecas. A integração entre Netbeans e Maven foi imperceptível, voltando um pouco no tempo me recordo de quão chato era configurar um projeto e as dependências, hoje com a maturidade das IDE esse trabalho é fácil e rápido.

4. Quais novos recursos de JSF 2 você achou mais interessantes?

Gostei de todos, esses novos recursos mostram a evolução do framework e a preocupação da comunidade em torná-lo melhor e mais simples. O suo de annotations sobre xml é inquestionável, mas de qualquer forma alguns recursos na minha opnião se destacam:

  • Padronização do Facelets para criação de telas e a definição de composite-components simplificando a customização e criação de componentes.
  • Suporte nativo Ajax, interessante para quem esta começando com JSF ou mesmo criando um aplicação pequena e não deseja usar componentes terceiros. Outro ponto positivo é a padronização da engine de Ajax permitindo que o desenvolvedor utilize mais de uma solução de componentes customizados no mesmo aplicativo.
  • @ViewScope: com a possibilidade de manter as informações enquanto a tela estiver aberta, o uso de managed beans em session irao diminuir.
  • @CustomScope: permite a possibilidade de customizar um escopo, que eventualmente pode ser menor do que a Session. Com ele poderiamos criar algo proximo do Conversation do JBossb Seam.
  • Bookmarkable, em alguns casos o uso de GET é indispensável.
  • Integração com Bean Validation: elimina muito código repetitivo de validação por annotations.
  • Resource Loading: simplicidade para carregar conteudo javascript, css ou mesmo composite-components, um pouco da idéia de convenção sobre configuração.

5. Você já havia colaborado em algum projeto Open Source?

Participei de uma forma tímida, colaborando com testes e algumas sinalizações de bugs. Essa foi minha primeira participação ativa, codificando e realizando commit! A experiência foi muito enriquecedora, além de uma ótima forma de adquirir conhecimento com prática, o trabalho em grupo/comunidade traz a oportunidade de contato com pessoas de lugares e experiências diferentes. O trabalho deixa ser trabalho e torna-se diversão!