7 de novembro de 2016

TDD ajuda a escrever programas mais simples?

Eu sou Vinicius Assef, um programador do século passado que gosta de Python, pratica Lean Development e acredita em Deus. Você pode me contactar por email ou twitter.

4 comentários:

  1. Parabéns pelo artigo.

    Vini, tem alguma dica pra aprender tdd? Tenho uma dificuldade enorme, outra coisa é o problema o que testar.

    ResponderExcluir
    Respostas
    1. E aí, Fabio, tudo bem?

      Duas perguntas importantes, hein. Vamos por partes.

      1) Dica para aprender TDD.

      Praticar. Não tem jeito. Tem que praticar, mas com um pensamento um pouco diferente do que a gente estah acostumado.

      Um curso ajuda e eu estou trabalhando no conteúdo. Em breve você poderá contratá-lo. Pode ficar tranquilo que não será caro, não, mas será bem completo. Vou anunciar na comunidade Python.


      2) O que testar.

      Resumidamente, você testa código que você desenvolveu.

      Por exemplo, se você usa Django, não precisa testar se o Model.objects.create() realmente cria um registro no BD. Mas se o código que você fez chama esse método, vale testar o seu código para saber se o registro foi criado da forma como você esperava para essa funcionalidade especificamente. Pode ser que nem todos os campos precisem ser preenchidos, ou pode ser que um campo tenha um conteúdo diferente nessa funcionalidade. Enfim, você testa se seu método se comportou do jeito que você precisava.

      Isso nos leva a um outro assunto maior e polêmico: o quanto de regras de negócio eu coloco dentro do meu model. Esse assunto é importante e no curso falo sobre essa e outras questões mais profundamente.

      Ao meu ver, um erro é não testar códigos pequenos. Properties de classes, por exemplo. A questão é que um código pequeno hoje pode aumentar à medida que o sistema vai sendo feito e ficando mais complexo. Se não tiver cuidado, ele vai continuar sem teste e o problema se espalha pelo sistema. É como mato: cresce sem ninguém cuidar.

      Obrigado pelas perguntas.

      Excluir
    2. Obrigado pelas respostas.
      - Bom saber que você vai lançar um curso sobre TDD. Se for aulas gravadas, você pode botar pra vender no Udemy também e levantar uma graninha de vez em quando lá.

      Tem previsão pra lançamento?

      Excluir

Marcadores