open source


23
May 08

Frameworks: agindo com bom senso

Um pouco de conversa

Sempre que posso, acesso o fórum do Javaranch para ver as novidades e assuntos interessantes do mundo Java. No feriado de ontem estava eu navegando nesse fórum quando achei um tópico de título “When to use JSF or Struts“. Título este bem chamativo, por conta das diversas discussões e comparativos sobre esses frameworks na comunidade Java do mundo inteiro.

Nesse post, o autor pergunta qual a diferença entre os dois. A diferença é simples: a quantidade de artefatos criados e a complexidade de sua utilização. JSF é bem simples e com algumas configurações e artefatos criados já está apto para ser utilizado no seu sistema. Eu não sou xiita e não estou dizendo que JSF é melhor do que Struts ou qualquer outro framework, não estou afirmando que ele é a bala de prata. E não é.

Gostei muito de uma resposta desse post e ainda bem que ela foi logo a primeira resposta, evitando que outras respostas mudassem os pensamentos e opiniões dos leitores. Nessa resposta, o autor enfatiza: “How to choose? For me, I’ll choose a framework that team members familiar with“. Essa resposta foi bem coerente, pois se sua equipe possui experiência e produtividade com o framework X, não quer dizer que se adotar o framework Y aumentará a produtividade da equipe, pelo contrário, pode acontecer o inverso, já presenciei casos desse tipo.

É comum ver em fóruns, listas de discussão e até mesmo no dia-a-dia, profissionais discutindo com seus companheiros de trabalho, alegando que o Struts (versões 1.x) é obsoleto e está ultrapassado. Isso não é mentira, é fato. Porém o que não concordo é esse xiitismo e essa generalização em volta desse assunto. Você já trabalhou com Struts, já ganhou muito dinheiro com ele, eu também. O framework Struts foi por muito tempo o framework padrão de mercado, exigido por quase todas as empresas como requisito fundamental no currículo. Acredito que apenas uma fatia dos novos desenvolvedores que iniciaram a pouco tempo não tiveram a chance de trabalhar com ele. Mas este dia chegará, pois muito em breve esses teenagers irão prestar consultoria em sistemas que foram feitos com esse framework.

Por que o Struts está obsoleto?

É muito simples de explicar. Veja a imagem abaixo e tente comparar com qualquer outro framework da moda.

Arquitetura orientada a BOLOVO

Essa arquitetura é completamente orientada a BOLOVO. Note que é necessário a criação de vários artefados para a criação de um simples caso de uso.

Artefatos necessários:

  1. configuração do Servlet Front Controller do Struts no deployment descriptor (web.xml)
  2. criação de um XML denominado struts-config.xml
  3. criação de uma classe Java que estende a classe ActionForm (Struts)
  4. criação de uma classe Java que estende a classe Action (Struts)
  5. configuração do ActionForm no struts-config.xml
  6. configuração da Action no struts-config.xml
  7. se você for utilizar validação (que é necessária em todo sistema que se preze), é necessário a criação de outros artefados, como por exemplo um arquivo de propriedades.

Isso não acontece com frameworks da moda, nos quais são orientados a POJO. Por exemplo, o JSF necessita apenas da criação de uma classe POJO, configuração do Servlet no deployment descriptor e da criação de um XML chamado faces-config.xml. Três artefatos criados, eu disse apenas três artefatos criados.

Portanto, a sua utilização poderá acarretar em futuros problemas, como inúmeras refatorações. Também existe uma má utilização dos princípios da Orientação a Objetos e péssimas práticas de desenvolvimento de software, nos quais posso citar algumas: alto acoplamento, alta manutenabilidade e complexidade.

E agora, o que utilizar?

Muita calma nesta hora. Como mencionei acima, não sou xiita (a-rá, gosto de EJB e irei utilizá-lo em todos os meus projetos, até um hello world numa simples JSP, criarei diversos artefatos, farei várias configurações e utilizarei um servidor de aplicações parrudo). Ratificando: o intuito deste post não é mostrar que o framework X é melhor do que o framework Y.

Java está se tornando uma plataforma difícil de se dominar, por ser bastante abrangente e surgir novas funcionalidades todos os dias. Sem falar de frameworks, que todo dia nasce um no quarto de um desenvolvedor que está com seu ócio criativo em alta. Mas alguns frameworks estão me chamando bastante atenção, por serem produtivos, robustos e simples. São eles: JSF, VRaptor e Spring.

Lembrando mais uma vez: nenhum framework é a bala de prata!

frameworks-cadeia.jpg

Outros frameworks que estão chamando atenção da comunidade: Apache Wicket e Waffle. Implementações: Jersey e Metro.

Sobre frameworks caseiros

Se você acessar os maiores fórums brasileiros de Java como GUJ e PortalJava, verá inúmeras discussões sobre as vantagens e desvantagens de frameworks caseiros. Particularmente eu vejo muitas desvantagens, pois já passei por uma experiência que não me agradou muito. Há uma discussão no GUJ sobre esse assunto, ela é datada de 2005, que me chamou bastante atenção. Se em 2005 alguns dos membros mais ativos da comunida Java já falaram das desvantagens de construir tal geringonça, por que após três anos isso ainda continua?

Frameworks caseiros não são arquiteturas de referência, não são padronizados, não possuem uma comunidade em volta para dar apoio e não são padrões da insdústria de software. Construir frameworks caseiros com o dinheiro público é o pior caso de todos.

Nesse post do GUJ, Carlos Villela comentou:

Desenvolver um framework ANTES de desenvolver uma aplicacao nao da certo: ou voce acaba com a aplicacao tendo que fazer gambiarras em cima do framework, ou a aplicacao nao sai ate mudarem o framework. Eh melhor fazer uma aplicacao primeiro, refatorar ela e tirar os pedacos genericos e transformar num framework do que tentar advinhar o que eh generico e o que nao eh. Alias, risque a palavra advinhar do dicionario.

Ele adivinhou o que poderia acontecer utilizando essa abordagem e eu tive a péssima experiência de passar por isso.

Não sendo xiita, afirmo que cada caso é um caso. Está certo que em determinados projetos é necessário construir um determinado número de classes que executam processos comuns entre sistemas. Mas é para ser feito só o básico e o necessário, nada mais além do que isso, porque senão irá virar um framework!

Referências


22
May 08

Vídeo promocional do PUJ

Hildeberto Mendonça, coordenador do CEJUG, criou um vídeo promocional do PUJ (Prêmio Universitário Java). O PUJ foi criado pelo Felipe Gaúcho (também coordenador do CEJUG) e é um campeonato de trabalhos universitários para alunos que estão devidamente matriculados e que residem no Estado do Ceará.

Veja o vídeo:

[youtube:http://www.youtube.com/watch?v=ZPEDaRj8lzE]


8
May 08

Falando em Java 2008

A tempos que acompanho o trabalho dos irmãos Silveira (Paulo e Guilherme). Ambos estão fazendo um excelente trabalho profissional mas também não esquecem da comunidade Java, onde sempre estão fazendo e participando de eventos, além de h1-logo.gifadministrarem o GUJ.

E a comunidade só tem a agradecer a eles. Este ano acontecerá a segunda edição do Falando em Java, evento técnico da Caelum, e um membro do CEJUG irá participar do evento. Renato Parente, desenvolvedor Java do NATI/UNIFOR, irá transmitir para o grupo de usuários java do Ceará as novidades do mundo Java, no Café com Tapioca de junho.

Obtenha mais informações nos blogs do Jeveaux e Edgar Silva.


4
May 08

Chamada para projetos open source

Participar de algum projeto open source é a melhor maneira de aprender novas tecnologias e ganhar experiência para a vida profissional. Mas, você sabe o que é um projeto open source? Open Source

Atualmente estou participando do desenvolvimento do CEJUG-Classifieds, um projeto open source que tem como objetivo retirar anúncios que não tem nada a ver com o conteúdo da lista de discussão do JUG, que é sobre Java.

Mas o que eu ganho com isso? Nada.

Pelo contrário, eu gasto tempo e energia elétrica. Mas você sabia que dá para ganhar dinheiro?

Posso enumerar vários motivos que me levam a participar de projetos open source, dois desses eu citei acima, mas vamos enumerar mais alguns:

  1. experiência
  2. ajudar a comunidade
  3. aprender inglês
  4. trabalho em equipe
  5. aprender novas tecnologias

Participo de diversas listas de discussão sobre Java do Brasil e do mundo e vejo a quantidade exorbitante de anúncios de todos os tipos, como: venda de livros e vouchers, cursos, revistas, aparelhos eletrônicos, computadores, etc.

Dentre as listas de discussão que participo, a lista do PBJUG é uma das que me chama mais atenção. São vários e-mails diários e membros competentes sanando as dúvidas.  Recentemente um membro enviou um e-mail anunciando a venda de um aparelho eletrônico, e o Rodrigo Rebouças perguntou se alguém queria implementar um sistema de classifidados. Bem, o CEJUG-Classifieds é open source e pode ser facilmente utilizado por outros JUGs.

Portanto, faço uma chamada para quem quiser participar desse projeto.


15
Apr 08

Material do Café com Tapioca de abril

No último sábado (12/04/08), palestrei juntamente com o Tarso Bessa sobre o tema Os melhores do mundo: um comparativo entre Spring e EJB 3.0.

O intuito foi mostrar como fizemos as features de uma aplicação JavaEE utilizando as duas tecnologias, como: injeção de dependência, segurança, serviços de mensagens, web services, etc. Palestramos no evento técnico do CEJUG, Café com Tapioca, na FANOR.

Esse tipo de palestra (em par) enriquece o conteúdo da apresentação e faz com que chame bastante a atenção do público, por ser algo diferente. Paulo Silveira e Phillip Calçado fizeram uma palestra semelhante no JustJava do ano passado.

Apresentação



Exemplos

Spring | EJB 3.0


8
Apr 08

Café com Tapioca de abril

No dia 12 de abril (sábado), acontecerá na FANOR o próximo Café com Tapioca.


Desta vez teremos mais três palestras, são elas:

  • OpenSocial: construa sua rede socialChristiano Milfont
  • Conhecendo o SpringIgo Coelho
  • Os melhores do mundo: comparativo entre Spring e EJB 3.0 – Tarso Bessa e eu :)

Obtenha mais informações na página do evento, faça sua inscrição na página do JugEvents, não esqueça de levar um quilo de alimento não perecível e compareça a confraternização que ocorrerá após o evento.

CEJUG e você, fazendo a comunidade Java cearense crescer!


4
Apr 08

Por que este Portal é feito em PHP e não em Java?

Hoje eu estava lendo as notícias que os membros do PortalJava enviam e, dentre elas, vi a notícia abaixo:

Não seria uma incoerência o PORTALJAVA.COM desprezar o JSP em prol do PHP. Minha intenção não é desprezar uma tecnologia em detrimento de outra. Ao contrário, tenho apenas o intento de sugerir a possibilidade de implementar este portal através da tecnologia JAVA, isto é, através da tecnologia trabalhada e divulgada neste espaço. Gosto muito deste portal, reconheço a qualidade do conteúdo e competência da equipe, mas porque não JSP?… Porque não buscar mais coerência, sobretudo, entre o que se fala e o que se faz?

Estou colocando sem a permissão do autor, porém ao enviar essa mensagem ele não colocou o seu nome ou e-mail, então não tive como contactá-lo.

Já ouvi isso em diversos lugares, tais como: fórum, faculdades, empresas, eventos e até em momentos que não tem nada a ver com Java.

Por que o PortalJava é em PHP? Pelo simples motivo de tempo, pois na época os colaboradores não tinham tempo para construir o site do portal em Java, então optaram pelo PHP-Nuke, que já tinha tudo pronto, inclusive o fórum.

Foram vários tópicos criados, muitas discussões sobre esse assunto, até que este ano, conseguimos migrar o fórum para o JForum, que é feito em Java.

O próximo passo será migrar o site para Java, e para isso estamos concluindo o JNuke, que é um CMS criado pelo fundador do PortalJava, Franklin Samir.

Se você quiser aprender Java, aprender os melhores frameworks do mercado e ainda por cima gostar de participar de projetos open souce, não fique de fora do JNuke.

Termino este post pedindo um pouco de paciência para os amantes do PortalJava que não suportam ver a extensão .php no final das páginas do site, em breve isso terá fim.


13
Mar 08

Café com Tapioca de março, com JBoss Seam, Wikicrimes e DSL com Rhino

No próximo sábado, dia 15, acontecerá na UNIFOR o próximo Café com Tapioca. O evento contará com a participação especial do coordenador do  CEJUG, Hildeberto Mendonça, que estará no Brasil durantes os próximos dias. Hildeberto falará sobre o JBoss Seam, framework que está chamando a atenção da comunidade Java.
O evento também contará com as presenças do prof. Vasco Furtado e Leonardo Ayres, que irão falar sobre o Wikicrimes. Christiano Milfont também marcará presença mais uma vez, agora abordando o tema DSL com Rhino.

Obtenha mais informações na página do evento, faça sua inscrição na página do JugEvents, não esqueça de levar um quilo de alimento não perecível e compareça a confraternização que ocorrerá após o evento.

CEJUG e você, fazendo a comunidade Java cearense crescer!


18
Feb 08

Fórum do PortalJava em java

Até agora não estou acreditando, depois de quatro anos no PortalJava, vou parar de ouvir nos lugares: PortalJava em PHP? Por que? (risos irônicos…)

No Café com Tapioca de Coco, quando fui mostrar o site do PortalJava para o Simon Ritter, ele apontou logo para a extensão index.php da URL e perguntou: “-Site de Java em PHP?” e deu um sorriso irônico.

Agora isso não vai mais acontecer, pois conseguimos migrar o nosso fórum para o JForum e dentro de mais alguns dias migraremos o site por completo para o JNuke.

Em algumas semanas o PortalJava irá estar rodando 100% em Java, aguardem.

Jeveaux e Guilherme Mello, ambos da equipe do PortalJava, também postaram sobre o assunto.

Confira abaixo o fórum rodando no iPhone do Guilherme.


13
Feb 08

Cobertura do Café com Tapioca de Coco

O maior evento do CEJUG (CEará Java Users Group) aconteceu ontem na FA7: o Café com Tapioca de Coco. O evento contou com a presença de quase 500 pessoas.

Reggie Hutcherson e Simon Ritter da Sun Microsystems e Paulo Silveira fundador do GUJ e da Caelum foram os responsáveis por transmitir conhecimento para o público.

Reggie falou da estratégia da Sun para desenvolvedores. Simon deu duas palestras: JavaFX e Sun SPOT. Paulo Silveira falou sobre arquitetura java.

Vídeo

[youtube:http://www.youtube.com/watch?v=a6jt16I2q7c]

Fotos

http://picasaweb.google.com/cafecomtapioca/CafComTapiocaDeCoco