VidaGeek.net

Linux, Open-source, Programação e Produtividade

Por tudo que é sagrado, escrevam testes!

Acho que já passou da hora dos programadores amadurecerem um pouco quanto a necessidade de testes para TODA e QUALQUER aplicação que seja escrita, independente do tamanho. Acho que já passou muito da fase na qual a arrogância era o suficiente para você acreditar que sua aplicação funcionaria sem testes, afinal, você é o melhor programador do mundo.

“Mas o Knuth não usa testes. A gente tem que seguir o exemplo dos melhores”.

Concordo. Temos que seguir o exemplo dos melhores programadores do mundo. Mas lembre-se, Knuth não usa testes porque ele é o Knuth. Se ele diz que a aplicação dele funciona sem escrever testes eu acredito. Se isso é bom, acho questionável. Knuth não trabalha com mercado. Ele não trabalha dando manutenção em código. Ele trabalha apenas em projetos onde ele tem controle total (vale lembrar que embora o TeX seja aberto, apenas o Knuth pode usar o nome TeX). E ele é um dos maiores programadores do mundo. Uma realidade bem diferente da qual eu e você passamos todos os dias.

Sei que o mundo já gritou a muito tempo que sem testes não rola nenhuma aplicação (já ouviu falar dos caras que escreveram o Manifesto Ágil? Não? Onde você viveu nos últimos anos?). Dos maiores aos menores bons programadores. Por que raios seguir o exemplo desses caras? Será que eles realmente não sabem o que estão falando?

Dê uma chance ao que eles estão dizendo.

Eu, que não sou ninguém ainda, consigo ver incontáveis vantagens em usar testes.

  • O tempo de desenvolvimento diminui a partir da terceira semana consideravelmente (Não temos mais que nos matar caçando bugs de regressão e esperando o pessoal de QA dar aval);
  • Em geral testamos o código com um main, pra ver se está funcionando. Qual a diferença de tempo entre isso e escrever um teste de verdade que vai te ajudar por todo o projeto?
  • Sabemos exatamente qual modificação causou uma quebra de compatibilidade (em vez de saber em qual mês ela ocorreu);
  • Não precisamos lembrar de absolutamente todo o código. Se esquecer, dê uma olhada nos testes daquela parte do código e pronto;
  • Se alguém for dar manutenção no código daqui a 6 meses e incidentalmente introduzir um bug, os testes vão avisar;
  • Integração contínua funciona por causa dos testes;
  • Refactoring funciona por causa dos testes;
  • Agile development funciona por causa dos testes;
  • O Design da sua aplicação tende a ficar melhor e menos acoplado;
  • Entre outros, o que eu considero mais importante é o fato de poder dormir em paz, sabendo que meu código está funcionando. Ninguém vai me ligar no fim de semana (ou no meio da noite) para arrumar um sistema que está em produção.

E você ainda acha que não vale a pena investir nisso? Ignore o que os programadores de 30 anos atrás ainda estão falando (a não ser que eles tenham bom senso e usem testes).

Mas como faço para escrever testes? Primeiro, clique aqui.

Gostou? É assim que se aprende muito em computação sobre o que é relativamente novo no mercado. E testes infelizmente ainda são relativamente novos no mercado.

E depois? O que eu devo fazer? Bom, de agora em diante, apenas ter disciplina para escrever os testes para as suas funcionalidades. Pronto. E o mundo está quase salvo =D .

Programadores não podem ter medo de aprender coisas novas. O novo, em programação, é o que vai garantir que possamos chegar em casa e viver um pouco, em vez de apenas trabalhar por horas até a exaustão.

Posts Relacionados:

  • Testes unitários em C++
  • Os criadores do Skype atacam novamente…
  • Dia C - Usando testes para o desenvolvimento
  • TDD para Ruby - Fibonacci
  • FISL 9.0: Coding Dojo
  • Um caso de ódio e talvez um pouco de amor (Também conhecido como automatizadores de build)
  • Hibernate Search
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

    Linguagens de Programação - C

    C é uma das linguagens mais famosas e utilizadas que existem. Também, é bastante antiga, já que sua primeira versão é de 1972. Apesar da idade, ainda é muito utilizada devido à sua generalidade e velocidade. Aqui no VidaGeek, já publicamos uma série de posts sobre C (vide Dia C), então não vou falar sobre a sintaxe de C. Mas vou dar minha opinião sobre ela.

    (more…)

    Posts Relacionados:

  • Linguagens de Programação - Basic
  • Lambda the Ultimate
  • Linguagens de programação - C++
  • CodeIDE
  • Linguagens de programação
  • Linguagens de Programação - Java
  • Um dia na vida de um programador azarado
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 23 Comments
  • Filed under: C, Opiniao, Programacao
  • Textos Clássicos

    O site Babar Kazarcolocou no ar uma coletânea de publicações sobre Ciência da Computação, incluindo trabalhos de Knuth e dos criadores do algoritmo criptográfico RSA(Rivest, Shamir e Adleman). Se você se interessa por Ciência da Computação vale a pena investir seu tempo lendo esses trabalhos.

    Posts Relacionados:

  • FISL 9.0: Jornalismo Livre
  • Guia Latex - Parte I: O que é e por que usar
  • Guia Latex - Parte III: Estruturando e marcando o texto
  • StumbleUpon - Encontrando Sites Relevantes
  • Caracteres bizarros direto do seu teclado
  • Groupware
  • YACP (Yet Another C Primer)
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 0 Comments
  • Filed under: Dicas