Não era mais uma receita de bolo JSF!
É 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.
Tags: adffaces, AJAX, ajax4jsf, facelets, ICEFaces, Java, JavaScript, JavaServer Faces, JBoss Seam, JEE, JSF, jsftemplating, jsp, mojarra, myfaces, patterns, performance, richfaces, savestate, Seam, tomahawk, trinidad, web
June 5th, 2008 at 1:19 pm
É impressionante como os desenvolvedores ainda insistem em não utilizar as boas práticas de desenvolvimento nos dias atuais, mesmo depois de diversos textos em blogs, fóruns e artigos.
Bem, só nos resta continuar o nosso trabalho de pregar as boas práticas e rezar para que um dia chegue a época das boas práticas de desenvolvimento de software em todo o mercado.
June 6th, 2008 at 11:28 am
Sad but true!
June 6th, 2008 at 12:10 pm
Concordo completamente brother, existem muitos indivíduos por aí agindo feito verdadeiros robôs!
June 26th, 2008 at 7:26 pm
Copy/Paste é algo que nunca deixará de existir, não importa qual tecnologia… achou na Web vai direto pro CVS das pobres empresas…
Muito bom seu blog!
July 1st, 2008 at 7:37 am
Falou bem.
Daí vc vê quem tem criatividade ou não(é robô, como diz o Rogério).
Mas confesso que acho bom ver uns caras ruins e burros assim. Dessa forma quem tem criatividade e é bom se detaca ainda mais.
November 1st, 2008 at 3:56 pm
[...] das práticas contidas nos slides já foram muito discutidas por aqui, outras eu sempre comento um pouco em alguns posts e na maioria das vezes elas foram muito [...]