A forma como você programa, faz toda a diferença!

Quando aprendemos a programar, toda nossa energia está focada em simplesmente fazer as coisas funcionarem. O desafio é entender como a máquina funciona, como a linguagem se comporta e como controlar o fluxo de execução do software.

É nessa fase que a gente aprende a lidar com o elemento mais frequente na programação: o erro! São infinitas as formas pra algo dar errado. Um erro de digitação, uma lógica errada, uma contagem que escapa por 1, um arquivo que você esqueceu de adicionar, etc.

O processo de tentativa e erro é da natureza do aprendizado.

Cada erro nos ajuda a aprender um pouco mais. Com a prática os erros simples vão ficando menos frequentes, dando espaço para questões mais sofisticadas.

Quando desenvolvemos software profissionalmente, é muito importante ter a consciência que erros sempre acontecerão. O desafio então é você administrar o risco e o impacto destes erros.

Na realidade a interação entre o programador e um código, é um erro em potencial. Quando só você usa o software, o erro tem baixo impacto. Mas quando se trata de um software em produção que serve vários usuários, o impacto pode ser catastrófico.

ansiedade frente ao erro

Nessa série de artigos eu comecei falando porque é importante ter foco no valor. Na sequência expliquei o que você pode fazer para não perder o valor de vista. Se você ainda não leu estes artigos, vai lá rapidinho antes de continuar que eles vão te dar mais contexto sobre o que falaremos aqui.

Neste artigo vou compartilhar como você pode ir além da programação aprimorando a sua forma de desenvolver software para ter muito mais confiança na solução que você entrega.

Desenvolvimento Guiado por Testes ou Test Driven Development (TDD) é a técnica que eu mais uso e que mais me ajuda a programar sem perder de vista o que eu preciso entregar.

TDD é uma técnica de design de código que te ajuda a administrar e reduzir os riscos do processo de programação. Ao escrever os testes primeiro e evoluir o código teste por teste você evita que o processo de desenvolvimento vire um caos. Assim você se mantém sempre confiante em evoluir o código, sem medo de mexer aqui e quebrar lá do outro lado.

O processo de TDD se baseia em você definir o input e output do seu código antes de se preocupar com o processamento que levará de um estado ao outro. Assim eu começo do mais simples ao mais complicado, aumentando gradualmente a capacidade do meu software realizar a tarefa.

Quando eu escrevo os testes primeiro, eu expresso um código que diz: Rode o processamento X com o input Y e o resultado será o output Z. Se não for, tá errado!

O detalhe é que fazemos isso antes mesmo de criar o processamento X, seja ele uma função, um método de uma classe, ou qualquer outra construção. Eu defino concretamente a expectativa e a interface do que eu ainda vou implementar.

Se você nunca viu isso acontecendo na prática, no vídeo abaixo eu demonstro a construção de um programa utilizando esta técnica. Eu gravei esse vídeo como um exercício pedagógico quando eu estava pesquisando as melhores abordagens para projetar o Welcome to the Django. Olha que maneiro…

Aprender a dominar os testes e entender como utilizar a técnica para entregar valor foi a lição mais marcante que o meu amigo Bruno Barbosa tirou do Welcome to the Django.

Durante todo o processo do curso nós combinamos a estratégia de Baby Steps com o TDD indo desde a primeira linha de código até o sistema todo completão no final.

Dominar essa técnica teve um impacto bem grande na produtividade do trabalho do Bruno e na forma que ele atende seus clientes. Hoje ele se pergunta como ficou tanto tempo programando de outra forma.

E aê curtiu? Deixa um comentário que a gente segue conversando.

Acompanhe as novidades da nova turma inscrevendo seu e-mail no site do Welcome to the Django.

[]’s, HB!

você pode gostar também

Comentários