Um dos princípios que mais valorizo em práticas ágeis é o feedback. De todos os tipos de feedback que já recebi programando, o que mais me agrada, sem dúvidas, é aquele que vem do meu código.
Se meu código está difícil de testar, posso entender que meu design está ruim. Se uma alteração inocente faz muitos testes quebrarem, sei que tenho um índice questionável de acoplamento. Etc.
Valorizando o feedback que recebo do código, percebo todas as ferramentas que facilitam esse feedback como imprescindíveis. Há tempos uso Resharper (sim, eu sei que ajudei a fazer o CodeCracker), NDepend, entre outras. Essas ferramentas têm ajudado a “vocalizar” o feedback do meu código e têm contribuído para que eu me torne um programador melhor.
Nessa semana, resolvi ativar o “Live Unit Testing” do Visual Studio 2017. Essa ferramenta fica rodando meus testes em segundo plano e indica, em cada linha se todos os testes que “cobrem” essa linha estão passando (indicador verde) ou falhando (indicador vermelho). Caso uma linha de código não esteja coberta por nenhum teste, uma barra azul indica isso claramente.
A imagem abaixo dá uma ideia de como o Live Unit Testing opera (ela vem do site da Microsoft).
A adoção dessa ferramenta melhorou muito minha performance durante as atividades de estabilização do meu código (como sabem, somente considero um código estável quando ele tem ampla cobertura de testes). Até outro dia, estava muito satisfeito por quase nunca depurar código pois me bastava rodar meus testes. Agora, sou satisfeito por nem mesmo precisar rodar meus testes. Meu código quase conversa comigo! 🙂
PS: Você talvez esteja se perguntando se esse recurso deixa o VS 2017 pesado. Resposta: Deixa sim. Mas, é uma boa máquina resolve o problema e o custo mais do que se justifica (se precisa de ajuda para justificar a aquisição de outra máquina, me chame – preciso menos de 10 minutos para convencer qualquer bom gestor de que o investimento vale a pena).