Archive for the ‘Desenvolvimento Ágil’ Category

Não era mais uma receita de bolo JSF!

Thursday, June 5th, 2008

É incrível como depois do post Utilizando AJAX com JSF de maneira eficiente muitos desenvolvedores tem utilizado o exemplo básico do post -que nada mais era do que uma prova de conceito- como receita de bolo para criar aplicações sérias. Talvez eu não tenha sido claro, mas o intuito do post não era demonstrar um passo-a-passo de como desenvolver uma aplicação com alguns conjuntos de componentes, mas sim passar o conceito de como aproveitar melhor os recursos oferecidos pela tecnologia para criar aplicações mais ricas e leves.

Eu tentei ao máximo deixar claro que não eram os componentes X, Y ou Z que me forneciam recursos para implementar o conceito, como está bem claro nos trechos do post abaixo:

Utilizar um conjunto de componentes ricos e um framework AJAX. (Neste caso eu optei pelo Richfaces/Ajax4jsf por ser bastante simples de usar e integrar, por ser estável e por ser bastante utilizado na comunidade, contudo, qualquer outro conjunto de componentes AJAX poderia ser utilizado, como Trinidad ou mesmo o IceFaces);

E este,

Eu não me prendi a utilização dos frameworks ou conjuntos de componentes utilizados pois este não era o intuito do post, isso é algo simples e acredito que a maioria dos leitores não tenham dificuldades em relação a isso. Além do mais é possível implementar isso não somente com o Richfaces/Ajax4jsf, mas com qualquer outro framework ou conjuntos de componentes AJAX, por exemplo, [...]

Não é necessário utilizar Richfaces/Ajax4jsf, Tomahawk e Facelets para aproveitar os recursos da tecnologia de forma eficiente, você poderá conseguir isso com qualquer outro framework ou conjunto de componentes que te permitam unir AJAX e JSF de maneira prática, sejam eles Trinidad, JBoss Seam, IceFaces, Ajax4jsf, ADF Faces e/ou JSFTemplating.

Mais claro que isso é impossível.. porém ainda não acabou, um fato engraçado é que alguns desenvolvedores chegaram a se queixar de que eu fui muito radical ao dizer para desenvolverem toda uma aplicação em uma única página. Eu em nenhum momento disse ou mesmo insinuei isto, o que eu disse foi:

A idéia principal tem por objetivo evitar escrever muitas páginas para representar cada view (tela), diminuindo assim o número de páginas no projeto, o número de regras de navegação no faces-config.xml, diminuindo o overhead no servidor e no cliente a cada refresh de página, [...]

Vocês não precisam e provavelmente não deveriam implementar suas aplicações seguindo o exemplo do post, ele é básico, ele serve como referência, possui uma implementação simples e não se preocupa com alguns requisitos não funcionais como a paginação sob demanda ou quais os objetos que deveriam permanecer entre as requisições. Além do mais o exemplo é um CRUD, e não uma interface com o usuário mais complexa no sistema.

Entendam uma vez por todas que não existe uma arquitetura de referência ou receita de bolo para desenvolver sistemas, cada sistema possui suas necessidades e peculiaridades, e estas devem ser estudadas e analisadas para se chegar a uma solução plausível.

O importante é que vocês compreendam o conceito, seus prós e contras e principalmente onde e quando utiliza-lo. Não se prendam ao framework ou conjunto de componentes, a maioria deles hoje em dia te fornecem os recursos necessários para implementar a idéia sem muitas dificuldades.

Enfim, estudem, entendam, aprimorem, façam testes e implementem o conceito onde for necessário, com os componentes e frameworks cabíveis e sempre com bom senso.

Comentários sobre o CCT de Maio/2008

Tuesday, May 20th, 2008

Como eu havia falado antes, o CCT de Maio ocorreu no último sábado na Faculdade Lourenço Filho (FLF). Foram três palestras com temas bem distintos e de qualidade. O evento contou com 70 pessoas, em sua grande maioria estudantes. Infelizmente os profissionais do nosso mercado por algum motivo se ausentam de eventos como este, mas estamos tentando contornar isso.

As três palestras foram excelentes, a minha palestra sobre Domain-Driven Design, a de JME ministrada pelo Vando Batista e a palestra sobre Integração Contínua ministrada pelo Luthiano Vasconcelos. Acredito que todos nós conseguimos abordar os temas com objetividade e proficiência. Mas com certeza o Luthiano merece meus parabéns por ter apresentado aproximadamente 25min da sua palestra sem a ajuda dos slides devido a problemas técnicos, ele é o cara!

Neste evento o Rafael Carneiro reforçou o movimento Shoes is Watching, distribuindo uma cópia do folder aos 20 primeiros que chegassem ao evento, foi bem divertido a repercussão desta brincadeira, algumas pessoas gostaram muito, outras odiaram e outras desconheciam o Shoes, porém depois do evento todos sairam de lá sabendo quem era o Phillip Calçado (aka Shoes) e o motivo da brincadeira.

Gostaria de agradecer a coordenação do CEJUG, a FLF por ter cedido o local e o excelente coffee-break, e alguns amigos que me ajudaram direta ou indiretamente durante um estudo mais aprofundado sobre o tema como o Alessandro Lazarotti, Rommel Costa, Christiano Milfont, Rafael Carneiro e Tarso Bessa.