Todos certamente concordarão que os desenvolvedores devem ter um bom ambiente de desenvolvimento. Note que por “ambiente” eu estou falando do hardware e software que eles têm à sua disposição e não considerações de ergonometria – embora isso também seja importante. Já vi desenvolvedores empilhados em condições que os operadores de telemarketing chamariam fiscais do ministério do trabalho, apesar do salário dos desenvolvedores ser bem maior.
Na minha experiência, costumo ver os desenvolvedores usando computadores capazes e com boas ferramentas do tipo “ambiente integrado” como Visual Studio ou Eclipse. O problema é que o “ambiente de desenvolvimento” não acaba por aí e as coisas ficam mais complicadas.
Em primeiro lugar, considero essencial ter algum software de “controle de versão”. Existem várias opções, desde o velho Microsoft Visual Source Safe, que apesar das limitações ainda é bem melhor que nada. Na plataforma Microsoft a versão mais nova do software de controle de versão é um componente do “Visual Studio Team System”. Além de outros produtos comerciais, existem também opções gratuitas “Open Source” como o CVS ou o Subversion. O assunto “controle de versão” costuma hoje ser tratado como um tópico do “gerenciamento de configuração”, mas não se sinta intimidado a estudar o assunto profundamente, pois o software de controle de versão é o componente básico e o mais importante de todos. Ou seja, mesmo que você não entenda muito de “gerencia de configuração”, instale um controlador de versão.
Outro aspecto muito importante é desenvolver e testar em um ambiente o mais parecido possível com o ambiente de produção, desde que isso não atrapalhe o trabalho. Desenvolver em um ambiente próximo ao de produção evita muitos problemas no momento das primeiras implantações.
Alguns problemas comuns são os seguintes:
• Diferenças de idioma/cultura, por exemplo, desenvolver com Windows em Português e rodar sob Windows em inglês. Rodar sob sistema operacional inglês é típico em servidores Web, pois as atualizações de segurança saem antes em inglês do que em outros idiomas e, portanto um servidor Web em inglês é provavelmente mais seguro. Outro cenário é a hospedagem de aplicativos Web no exterior por questões de custo;
• Desenvolver com credenciais de administrador e rodar com credenciais de usuário limitado. É difícil rodar o ambiente de desenvolvimento em si sem ser administrador, pois o suporte à depuração seria perdido. Mas isto causa desde problemas sutis como falta de permissão de acesso à diretórios até impossibilidade de acesso à banco de dados. Na medida do possível os outros componentes como o servidor Web e o servidor de banco de dados devem ser rodados com contas mais limitadas, como “NETWORKSERVICE” por exemplo. Esta também é uma razão para não usar o servidor de desenvolvimento que vem com o Visual Studio e sim o Internet Information Server completo;
• Usar versões diferentes de servidores, como por exemplo de bancos de dados ou Web. Por exemplo, o IIS do Windows Server 2008 R2 é o 7.5, enquanto a versão usada em uma estação Windows XP seria a 5.1. Mesmo que elas sejam “supostamente idênticas”, existem pequenos detalhes diferentes. Uma versão mais nova pode ter quebrado a compatibilidade com a versão anterior de propósito ou mesmo acidentalmente;
• Usar massas de dados em desenvolvimento diferentes das de produção, o que costuma trazer problemas de desempenho quando encontramos massas de dados grandes em produção.
Outro ambiente importante é o de homologação, que idealmente deve ser muito idêntico ao de produção, tanto sob o aspecto de que software está instalado como também de hardware, para ser possível fazer testes de carga. É muito comum os equipamentos de homologação acabarem sendo usados para outras tarefas secundárias como, por exemplo, back-up, visto que são máquinas boas que “não fazem nada o dia inteiro”. Esta é uma tentação que se não puder ser resistida, deve ao menos ser mitigada, estabelecendo procedimentos como horários reservados para a homologação.
Archive for the ‘Microsoft’ Category
Ambiente de desenvolvimento
Monday, April 25th, 2011Windows Mobile (não Phone 7) ainda está vivo
Saturday, June 19th, 2010Quando a Microsoft anunciou sua nova plataforma móvel, o Phone 7, algumas pessoas ficaram preocupadas porque ele não seria compatível com a plataforma atual (WinMo 6. 5). O problema é que existem alguns dispositivos e aplicativos desenvolvidos para esta plataforma, especialmente usando dispositivos da Symbol (agora Motorola) e seus concorrentes.
Em um recente anúncio (http://bit.ly/aP8w4f), a Microsoft declarou seu apoio continuado a plataforma atual e até mesmo uma nova versão para o próximo ano.
Então, me parece que a Microsoft terá duas linhas de sistemas operacionais para telefone/celular:
- Phone 7: Mais orientada para o consumidor, um pouco fechado (como o iPhone)
- Windows Embedded Compact 7: uma nova versão da plataforma atual, aberta e compatível
Vejo isso como boa notícia. Sempre gostei de meus dispositivos de CE (estou no meu terceiro telefone WinMo). Eu nunca gostei da abordagem “fechada” da Apple; essa é a razão que eu nunca tive um iPhone. Apesar de perder mercado e um pouco órfãos, ainda existem alguns bons produtos baseados WinMo, como o Samsung Omnia II.