segunda-feira, abril 17, 2006

Ambiente de desenvolvimento

Há um tempo atrás eu pensei em escrever um post descrevendo o ambiente de desenvolvimento que eu uso para escrever aplicações Web em Java. Basicamente Eclipse+Tomcat+Ant. A idéia era fazer um passo a passo, explicando os motivos das esolhas, características e vantagens do setup utilizado. Confesso que nunca escrevi por pura preguiça. Mas hoje resolvi escrever algo sobre ambientes de desenvolvimento de forma mais genérica. Dedico ao meu colega Raphael, que vive dizendo que ama emacs, mas vira e mexe me pentelha porque não consegue trabalhar direito com Eclipse e Tomcat.

Primeira má notícia: configurar ambiente de trabalho pode ser longo e chato. Sobretudo se  estiver trabalhando com  Linux e ferramentas livres. IDEs pagas em geral são mais bem documentadas e portanto mais fáceis, o que aliás justifica o  preço pago. E mesmo assim, tem que se perder um tempinho pra deixar o pacote do jeito desejado. Segunda má notícia: ter um bom ambiente de desenvolvimento é condição sine qua non para ter uma produtividade adequada.

Não vou entrar no mérito de quais ferramentas são as melhores. Isso é muito pessoal, e vai do gosto de cada um...tentar discutir isso é entrar numa guerra de crenças quase religiosas. Até hoje não se chegou a um consendo sobre qual editor é melhor: VI ou Emacs. Eu prefiro Emacs, porque até hoje sou incapaz de abrir um arquivo e editar o seu conteúdo em VI.  O fato é que existe uma grande quantidade de setups adequados para se desenvolver uma aplicação desde que bem configurados. Do meu ponto de vista, uma configuração básica deve ter um esquema de controle de versão, um bom editor de código (se possível com syntax highlight, auto-complete, sistema de refactoring,  busca eficiente), e um bom sistema para compilação, testes, integração e distribuição do aplicativo. No melhor dos mundos, cada uma dessas ações deve ser executada com apenas um comando (one step build, uma das características definidas por Joel Spolsky para medir a qualidade de uma empresa de desenvolvimento). O compilador pode ser  javac, gcj, jikes, gcc. O builder pode ser o ANT, Make, Shell Script. Sistema de versão pode ser CVS, subversion, ou qualquer outro que exista ou que venha a existir e que eu não conheço. Editor tem aos montes: eclipse, emacs, jEdit, VI, entre outros. Não importa muito qual o conjunto de ferramentas utilizado, desde que seja eficiente, compartilhado por toda a sua equipe de desenvolvimento,  e possa ser usado a qualquer momento sem nenhuma grande complicação: ter que modificar comandos manualmente durante o processo ou tentar montar isso emergencialmente pode ser uma fonte de erros e dores de cabeça.

Portanto, conselho de amigo: antes de mais nada, defina quais ferramentas você prefere, assuma essa escolha, e passe um tempinho deixando tudo funcionando perfeitamente. Isso com certeza irá poupar muito tempo mais tarde.

2 Comments:

Anonymous Anônimo said...

Vai bonitão...

Não só diga qual é o setup, mas vai colocando tudo que que vc fez pra deixar ele "oh so powerful"

O tempo que leva pra acertar tudo, e eu já desenvolvi 14 macros no Emacs que deixam tudo nos conformes, com direito a uma implementação de solitaire. :-)

4/18/2006 12:35:00 PM  
Blogger Miguel Galves said...

Caro anonimo, que chamarei aleatoriamente de Raphael. Releia com mais atenção meu post. Eu ja disse qual o setup no início do text. Disse também que deixar ele "oh so porwerfull" é um tanto quanto demorado, e no meu caso não foi diferente. Disse também que não importa qual o setup utilizado, desde que seja produtivo pro desenvolvedor e sua equipe (e Emacs é uma boa ferramenta, não tenho absolutamente nada contra, já desenvolvi muitos sistemas com ela). E também não defendi meu setup dizendo que era o único produtivo. Portanto, se você quer desenvolver macros no Emacs, go ahead. Só não venha querer usar o eclipse emergencialmente pra rodar com tomcat. Dificilmente vai funcionar bem.

4/18/2006 12:49:00 PM  

Postar um comentário

<< Home