Ferramentas e idéias para desenvolvedores Servlets/JSP st1\:*{behavior:url(#ieooui) }

Ferramentas e ideias para desenvolvedores Java EE

 

É notável a vasta opção de tecnologias que são úteis para o desenvolvimento de aplicações web, e saber escolher a melhor combinação delas é um ponto relevante para toda equipe de desenvolvimento. Neste artigo veremos uma série de ferramentas e idéias que são cruciais para quem faz parte da comunidade JEE.

 

Desenvolver aplicações de qualidade não exige apenas o domínio de determinada tecnologia, mas também de conceitos que são essenciais para que tenhamos sistemas bem montados. Conhecer os principais padrões de projeto e saber o melhor contexto onde eles se encaixam é necessário e trivial para todos. O abuso da arquitetura MVC (Model View Controller) também se torna necessário, pois ela separa os papéis e com isso o desenvolvimento fica mais independente e facilita a manutenção. O conhecimento e a adoção de boas práticas de programação e padrões de codificação só ajudam a facilitar a comunicação dos envolvidos na equipe. A seguir veremos algumas tecnologias que os desenvolvedores devem levar em sua mochila e usá-las em seus projetos.

 

Testes automatizados

Para começar, nada melhor do que posicionar os soldados e garantir a cobertura para seguir em frente. É com essa analogia que vos trago a vantagem de ter testes automatizados em nossos sistemas. Eles são a garantia de que os requisitos estão bem atendidos e que posteriormente não seremos surpreendidos pelo inimigo. Já está mais do que provado que a negligência no momento da implementação dos requisitos é a principal causa do surgimento dos erros e como conseqüência, do atraso na entrega e no aumento do custo do produto final. Há várias APIs disponíveis para testes, mas destaco o JUnit (www.junit.org), por sua simplicidade e robustez. 

 

Persistência

Território dominado é hora de montar a base. Esse é um marco histórico e para se manter consistente, devemos escolher uma estrutura que nos torne independente. Para isso necessitamos de um framework que nos possibilite guardar nossas informações no local onde quisermos, dificultando assim a estratégia do inimigo. O Java adotou na sua especificação o JPA(Java Persistence API), que pode ser usado tanto em aplicações JEE quanto JSE. Mesmo antes do Java adotar o JPA como padrão, outro framework, o Hibernate(www.hibernate.org), já fazia sucesso e ainda continua a conquistar novos adeptos. Aqui a principal conquista é a independência de banco de dados e a facilidade de manipularmos e construirmos nossas tabelas e consultas.   

 

Framework JAVASCRIPT / AJAX        

Agora precisamos de interatividade e resolver alguns problemas de tráfego de informações, para agilizar o processo de comunicação com os usuários. O javascript quando bem utilizado, dá aos nossos sistemas uma cara mais moderna, tanto que há frameworks que simulam até ambientes desktop. Já o ajax, torna o processo de troca de informações com o servidor mais inteligente, uma vez que os dados podem trafegar nas páginas sem que para isso seja necessário recarregá-la, e com isso reduzindo o tempo para que a resposta seja exibida.

 

Entre os frameworks que oferecem funcionalidades javascript e/ou ajax  temos o ExtJS (extjs.com/), ExtGWT (extjs.com/products/gxt/), DWR (directwebremoting.org/), GWT (http://code.google.com/intl/pt-BR/webtoolkit/), Prototype (www.prototypejs.org/), entre outros. 

 

Relatórios

Os relatórios são os produtos dos nossos sistemas que precisam de atenção mais que especial, pois eles representam o que a administração precisa para facilitar em suas decisões. Eles precisam estar bem organizados e serem de fácil impressão. Adotar uma API que facilite a criação e personalização dos relatórios é preciso. Trago destaque para o Itext e o IReport. O primeiro nos possibilita a geração de relatórios a partir de código. Já o segundo oferece uma interface gráfica, facilitando a criação e manutenção dos relatórios.

 

Servidor

Há, no mercado, diversas opções de servidores disponíveis que dão suporte ao Java EE. Escolher a opção ideal para o seu projeto é importante, e isso vai depender do porte do seu projeto e da carga que ele receberá. Um dos mais populares é o Tomcat (http://tomcat.apache.org/). Ele é um servlet container e com ele podemos rodar nossas aplicações baseadas em servelets e jsps. Por outro lado, o Jetty (www.mortbay.org/), faz o serviço do Tomcat com mais eficiência. Muitos testes já comprovaram que o consumo de memória do Jetty é incrivelmente menor do que a do apache Tomcat. Agora para quem precisa trabalhar com EJBs, existem muitos servidores de aplicação à disposição, entre eles estão o Glassfish (https://glassfish.dev.java.net) e o JBoss (jboss.org/). Ambos são open source, porém o Glassfish possui interface de configuração e controle que simplifica o processo de manipulação do servidor.

 

Gerência de configuração

A partir do momento em que um projeto vai crescendo, torna-se cada vez mais difícil administrá-lo e isso pode trazer diversos problemas como perdas de arquivos, versões com falhas e até conflitos de bibliotecas. Para isso é necessário que usemos algumas das santas ferramentas ao nosso dispor. Um sistema de controle de versão como o Subversion (http://subversion.tigris.org/), evita que tenhamos problemas nos arquivos como versões atuais perdidas, e tenhamos o conhecimento do que foi mudado e o local onde foi está a alteração. E para unir forças e dar mais qualidade ao projeto uma ferramenta como o Maven (http://maven.apache.org/) é a chave de tudo. O propósito principal do maven é gerência e automação de projetos. Através de um arquivo xml, chamado de POM, podemos informar todas as bibliotecas, e definir o processo de construnção do nosso projeto. É semelhante ao Ant (ant.apache.org/), porém muito mais agradável de se trabalhar.

 

Logging

Por fim os alerto a fazer logging em suas aplicações. Ter registrado o comportamento do sistema é uma boa como medida de segurança e pode ser uma ótima arma quando precisamos encontrar malfeitores. O logging também é muito útil para depurar aplicações. O Log4J (logging.apache.org/log4j/), é uma API que facilita e nos dá total controle sobre como será gerado o log.

           

Tudo o que vimos aqui é só uma pequena porção de tudo o que está disponível para os desenvolvedores JEE. Escolher o pacote de ferramentas que atende as suas necessidades e investir para dominá-las é uma tarefa que deve ser levada em consideração, pois isso só lhe trará benefícios.