Meu ambiente de desenvolvimento

Sou questionado constantemente na Célula JAVA da faculdade Lourenço Filho (da qual fomos os fundadores, eu e o Handerson), sobre o ambiente que uso para desenvolver. Resolvi então criar um post mais direcionado aos novatos para compartilhar essas informações.

Como trabalho exclusivamente com JAVA no meu emprego e tenho seguido minha carreira nessa plataforma, meu ambiente se baseia no Eclipse, a melhor IDE java do mercado.

No trabalho uso o Windows como S.O. e em casa a dobradinha win/lin dual boot, a maioria dos softwares aqui mencionados funcionam nos dois.

IDE

Como mencionado, eu uso como base o Eclipse. Essa IDE tem centenas de plugins bons mas também tem bastante porcarias, já experimentei vários, fiquei com o seguinte ambiente:

Java 6. Sempre instalo a última versão, já conheço as novidades e faço "rêlouordis" para ficar antenado, essa de ficar com java 1.4 instalado não é interessante, afinal a plataforma sempre mantém compatibilidade com as versões passadas de forma extremamente estável (diferente de outro ambiente ali que as coisas da versão 2 não rodam as da versão 1, vai entender o que eles entendem por compatibilidade).

Eclipse como IDE base.

MyEclipse como suíte de plugins para desenvolvimento web e JEE, é o único que não é open source no meu ambiente de trabalho, mas vale cada centavo. O preço é escandalosamente barato para uma ferramenta tão boa.

Aptana, JSEclipse como plugins para html, css e javscript, sendo o último exclusivamente para javascript. o MyEclipse tem editores para esses artefatos, mas não são tão bons quanto o Aptana, eu ainda prefiro o JsEclipse da Adobe no caso do javascript, mas é questão meramente pessoal, em termos de features eles são praticamente a mesma coisa. Ultimamente testei o Spket apenas por curiosidade, por ele já trazer uma integração com o Ext, mas ele não tem diferencial comparado ao Aptana ou mesmo ao JSEclipse.

Container JEE

Tomcat 6 como container web JEE. Por questões de política do meu trabalho tenho que usar o Oracle AS10g como servidor de aplicações, preferiria o JBoss por inúmeros fatores (indiferente de questões filosóficas), mas uso o tomcat para testar todas as aplicações. Obviamente temos que nos policiar quanto às últimas novidades porque a Oracle sempre está alguns passos atrás (medidos em versões) dos outros servidores. Não temos nenhuma aplicação (pelo menos sob minha orientação) que use EJB, como não temos nenhum sistema distribuído e dificilmente teríamos (pelo contexto do nosso trabalho), nunca tivemos tal necessidade.

Banco de dados

Oracle 10g. Diferente do servidor de aplicações, o banco da Oracle na minha concepção é o melhor que existe (alguns dizem que é o IBM DB2, mas eu acho o Oracle). Mas mantenho o brinquedo MySQL instalado para testar as coisas devido a facilidade de instalação e manipulação.

Uso o programa DbVisualizer (que é feito em java) para trabalhar diretamente com os bancos de dados. Ele tem recursos menores se comparado às ferramentas nativas que são disponibilizadas pelas Players dos próprios bancos, mas como acessa todos os bancos que acesso diretamente: SQL Server (legado), MySQL (testes) e Oracle (produção e desenvolvimento), tenho preferência por ele.

Integração Contínua

Não temos um ambiente que enfatize a integração contínua e metodologias ágeis, nossa metodologia tem como base ainda se espelhar no IBM RUP (apesar de não ser o RUP).

Usamos o DotProject (provisoriamente) como gerenciador dos projetos. Não é a melhor ferramenta, aliás é muito fraca de ser considerada uma boa ferramenta, mas por enquanto o custo/benefício dela está falando mais alto, mas já existem movimentos de substituí-la. Esse é um exemplo de que a filosofia não deve falar mais alto que os aspectos técnicos, tínhamos uma base no uso do MSProject, que é muito superior ao DotProject, mas foi relegado em nome do Software Livre pela desculpa dos custos. Esse é um ponto onde o SL sempre perde pontos. Talvês existam softwares livres melhores que o DotProject que poderiam ter sido comparados ao MSProject, mas trocar um software que está funcionando corretamente por questões de custos não é uma boa alternativa, afinal o ROI medido posteriormente desmereça essa troca.

Nosso sistema de controle de versões é o velho e fantástico CVS que já tem suporte nativo excelente no Eclipse, mas vamos mudar para o SVN nesses próximos dias, posteriormente blogarei sobre essa mudança. Existe uma equipe que trabalha com o MSSourceSafe que deverá usar o SVN também, vamos ver o que vai sair dessa mudança, sinceramente eu não tenho opinião final formada sobre isso. Acredito que pode não ser uma boa idéia, já que essa equipe trabalha com DotNet e a integração entre o VisualStudio e o Sourcesafe seja bem melhor (evidente) que com o SVN, vamos ver.

Como eu mencionei, não enfatizamos (infelizmente) os métodos ágeis, mas tento seguir as boas práticas do XP, como não tenho um sistema de geração de builds, tento controlar usando o velho Apache Ant mesmo, tenho um script antigão aqui que coordena o processo inteiro, quem sabe não tenhamos um CruiseControl por aí em breve (que seria um salto extraordinário), quem sabe.

Agora nosso "Calcanhar de Aquiles" é o sistema de Issue Tracking daqui, é uma solução In House H-O-R-R-Í-V-E-L (como ficou gay meigo essa declaração). Já está sendo providenciado outra solução, mas In House também o que é uma pena devido a enorme lista de sistemas excelentes que existem por aí.

Last But Not Least…

O mais importante não é montar um ambiente de desenvolvimento ou simplesmente achar que conseguirá manter o mesmo pelo resto da vida e sim ter consciência de quais são as necessidades e como suplantá-las sempre procurando a melhor ferramenta que se adapte aos seus projetos. Espero que esse post ajude aos novatos como um passo inicial para pesquisar sobre aquilo que melhor o satisfaz na busca por um ambiente produtivo.

3 thoughts on “Meu ambiente de desenvolvimento”

  1. Muito legal o post, vou dá um upgrade no artigo que falo sobre NetBeans X Produtividade, e acho que ele será de grande ajuda para quem está começando para não cometer o erro de usar o NetBeans.

Comments are closed.