Through the Lines

Click here to edit subtitle

Posts

Do que você tem medo?

Posted by danilo.pereiradeluca on May 12, 2014 at 10:05 PM

 

Medo. O que é ter o medo? Existem pessoas que têm medo de escuro, outras têm medo de trovão, algumas um pouco mais emotivas têm medo da solidão. Mas na verdade o que realmente é o medo? Um sentimento? Um estado? É algo real ou simplesmente uma criação da sua imaginação? Bom isso eu já não sei, mas diversas vezes tenho medo de programar, sim, eu como um programador tenho medo de programar, loucura né?... Mas o que faz uma pessoa ter medo de programar? Na verdade eu não tenho medo de programar, mas sim do que pode acontecer ao alterar o estado de um código existente ou de um código que será escrito.

 

Quem nunca se deparou com aquele método tão grande que você até cansa de "rolar" a página para baixo? Ou com aquela modelagem que parece que o conceito de "normalização" seja algo inexistente? E quando a OO(Orientação a objetos) simplesmente é esquecida e os rastros de "ctrl + c e ctrl + v" estão explicitamente no caminho que você tem que percorrer? Ou seja - como o próprio Uncle Bob diz - quantos WTF(What the Fuck) você falou ao tentar entender algum código? E se tudo isso não tivesse uma cobertura confiável de testes? O que você faria? Passaria por esse trecho de código e fingiria que você não viu nada disso ou você tomava a decisão de começar a refatorar tudo - você limparia a casa ou jogaria a sujeira debaixo do tapete?

 

Essa é uma decisão nada simples de ser tomada, refatorar ou não? Um dos pontos que acho importantíssimo ser levado em consideração é saber qual o estado atual do seu projeto/sistema e a quanto tempo "aquilo" (os problemas que você identificou) estão fazendo com que o sistema "funcione". No caso de um sistema que já está em produção é lógico que o risco de tentar refatorar são maiores e mais penosos do que um sistema que ainda esta na fase de validação de funcionalidades. Para qualquer que seja o contexto, eu e você como programadores que se importam com a qualidade do projeto devemos escolher a opção de refatorar e limpar a sujeira, mesmo sendo trabalhoso e doloroso, nós temos que fazer isso e devemos limpar da melhor maneira que acharmos melhor (no caso eu recomendaria fortemente o uso de TDD para refactorings de funcionalidades que já estão em produção/validadas mas isso não vem ao caso agora).

 

Limpar a casa... Por que é a melhor opção? Será que vai realmente mudar alguma coisa no meu projeto fazendo isso? O que meu gerente vai achar sobre isso, fazendo requsistos não funcionais para no fim não ter nada de novo para mostrar para o cliente na próxima reunião? Refatorando eu irei agregar algum valor à minha equipe e ao meu projeto? A resposta para essas perguntas não têm valor algum e o mais importante é que não servem de justificativas para você não melhorar o seu código (a sua criação). Muitas pessoas acreditam que limpar o seu código é algo que faz com que ele tenha menos bugs, seja fácil de dar manutenção, seja legível, tenha uma boa cobertura de testes, ou seja, teremos uma excelente qualidade de código.

 

Mas limpar o código me traz um sentimento, o sentimento de satisfação. Para aqueles que já desbravaram um código e encontraram diversos problemas nele e resolveram "limpar a casa" sabem que no final o sentimento de satisfação de olhar o diff do código antes e depois e ver o quão melhor está o seu código é algo que não existem palavras para descrever.

 

Por tanto devemos sim ter medo de programar. No entanto esse medo é aquele que devemos sempre encarar, pois esse medo que nos fará sermos bons programadores, mais do que isso fará com que tenhamos satisfação dos nossos projetos e dos valores que agregamos a eles. Além do mais com o tempo saberemos analisar o que não devemos e o que devemos codar.

 


Categories: Para Refletir

Post a Comment

Oops!

Oops, you forgot something.

Oops!

The words you entered did not match the given text. Please try again.

Already a member? Sign In

1 Comment

Reply João
10:40 AM on May 23, 2014 
Fazer o refactoring simplesmente por satisfação pessoal, sem analisar impactos e valor disso para o projeto, que mundo você vive?