Clean Code, ou Código Limpo, é uma filosofia de desenvolvimento de softwares que consiste em aplicar técnicas simples que facilitam a escrita e a leitura de um código, tornando-o, assim, de fácil compreensão. Código limpo é igual a ter um texto bem escrito, de fácil leitura. As técnicas do Clean Code apareceram pela primeira vez no livro Clean Code: A Handbook of Agile Software Craftsmanship. Ele foi escrito por Robert Cecil Martin, conhecido na comunidade como Uncle Bob (Tio Bob).
Ao não aplicarmos os conceitos de Clean Code durante o desenvolvimento, a qualidade do código não será boa o suficiente, e ficará com pendências que você terá que retornar futuramente para ajustar, e essas “pendências” nos geram retrabalho futuro.
Como resolver os problemas de códigos mal-feitos e sem qualidade?
Resposta: A tão temida REFATORAÇÃO (processo que tem como objetivo melhorar o código sem alterar seu comportamento final). Nada mais é do que fazermos uma faxina no código, para uma melhor leitura.
O erro de muitos programadores é se preocupar apenas com a entrega do código, que ele esteja funcionando e que a entrega seja bem sucedida, sendo assim, não precisará de manutenção ou revisitar esse código entregue. Porém, vale lembrar que o campo de desenvolvimento de software sofre muitas atualizações contínuas, ou seja, o que você entregou hoje que está funcionando e atualizado, em seis meses pode estar obsoleto. Logo, o Clean Code seria uma solução para um código bem escrito, evitando gastos desnecessários e tornando o software pronto para novas atualizações.
É muito importante o nome que colocamos ao declarar uma variável. Tenha sempre em mente nomes expressivos, de fácil entendimento referente ao que ela faz, e que sejam diretos, para que ao lermos entendamos o que aquela variável representa.
Exemplo: Ao declarar variáveis não as declare com nomes curtos e insignificantes, onde temos que decifrar o que ela faz, porque ficará a interpretação de cada desenvolvedor, e isso pode ser um problema.
Assim como temos que nos atentar em que nome dar as variáveis que criamos, temos que nos atentar às nossas classes e métodos que desenvolvemos. E que o nome dessa classe e dos métodos que irão dar vida a ela, tenha clareza e coerência.
Sempre que você estiver desenvolvendo algo, pense se seu código é DRY ou WET.
Mas, o que é o DRY e WET?
DRY é Don’t Repeat Yourself (traduzindo, não se repita), cujo o objetivo é reduzir a repetição de código. É importante lembrar de:
Vantagens do uso do DRY:
WET é Write Everything Twice (traduzindo, escreva tudo duas vezes), que é o oposto do DRY, é o código que não aplica os princípios do DRY.
Compreender o que é um code smell é fundamental para termos um código rodando em perfeitas condições.
Vamos lá, traduzindo code smell, temos cheiro de código, isso quer dizer que dependendo do cheiro do seu código, temos um problema. Code smell, nada mais é do que uma metáfora que indica bem o problema, sendo fácil de detectar se o código está com um bom ou mau cheiro, principalmente para bons farejadores de cheiros, ou melhor, bons desenvolvedores que estão sempre atentos à qualidade do código. Se temos um mau cheiro, YOU’RE CODE ARE STUPID.
Não antecipar os requisitos e abstrações desnecessárias, isso pode gerar complexidade acidental (quando implementamos uma solução complexa ao mínimo).
O uso do Clean Code (traduzindo, Código Limpo) e todas as suas técnicas como DRY, WET e Code Smells são essenciais. Em um desenvolvimento de software independente se é uma simples função, uma classe, um método, um módulo ou um projeto (exclusivamente se for um iniciado do zero) desenvolvido com clean code seguindo os passos deste artigo sua entrega terá boa qualidade, será compreensível para uma revisão de código, escalável, exemplo para outros desenvolvedores e terá o alcance de objetivo. Além de ser uma das boas práticas de programação, é possível ter uma garantia de que você entregou um código
bom e legível ao cliente, e que não haverá falhas pois foi desenvolvido com testes. Importante mencionar que um código bem escrito não terá uma interpretação equivocada ao ser lido, e terá facilidade em fazer possíveis melhorias e manutenção ou adaptações futuras de um software.