Clean Code: a importância das pequenas coisas
- #Arquitetura de Sistemas
Introdução
Diferentes modelos de ciclo de vida de software foram desenvolvidos para acompanhar as necessidades do mercado ao longo do tempo. Cada um deles busca, à sua maneira, fornecer uma estrutura organizada e sistemática para guiar as fases do processo de criação, desde sua concepção até sua conclusão.
Apesar das particularidades, pode-se perceber algumas etapas comuns a todos eles: Definição (pensar a solução), Desenvolvimento (construção) e Operação (identificação de bugs, correções, melhorias).
Neste último passo encontramos o maior gargalo e dispêndio de recursos. Passamos a maior parte do tempo tentando entender códigos escritos por outras pessoas para realizar manutenção. O termo “tentando” é de extrema importância nesse estudo, visto que a cultura do Código Limpo visa minimizar esforços no âmbito da legibilidade.
Segundo Martin Fowler, um dos signatários do Manifesto Ágil, “Qualquer um consegue escrever código que um computador entende. Bons programadores escrevem código que humanos entendem”. Mas, afinal, o que fazer para ser um programador de alto nível produzindo com baixo nível de complexidade?
Identificando o Código Sujo
Um código “ruim” é aquele que não conseguimos compreender o funcionamento. Há valores obscuros e que não dizem o que de fato são, pouquíssima previsibilidade, detalhes de implementação confusos ou desnecessários, além de que uma pequena alteração pode impactar no funcionamento de todo o sistema.
Os motivos que nos levam a produzir códigos de “baixa qualidade” geralmente pendem entre tempo (a falta dele), baixa motivação e mudanças nas requisições no decorrer do processo. Vale destacar que reconhecer que um código é sujo não significa que você saberá escrever um código limpo.
Surgimento do Clean Code
Desde 1970, Robert Cecil Martin (também chamado de Uncle Bob) é conhecido no meio do desenvolvimento ágil. No seu livro clássico Clean Code: A Handbook of Agile Software Craftsmanship, publicado em 2008, o termo homônimo é citado e detalhado pela primeira vez.
A obra foi rapidamente disseminada e estabelece uma série de princípios, diretrizes e exemplos práticos que os programadores podem seguir para melhorar a qualidade do código que produzem.
Por que se preocupar com a escrita do código?
Imaginemos que há alguns anos você trabalha como desenvolvedor em uma pequena empresa. Certo dia, a entrada de uma nova administração é anunciada, e com isso, uma série de mudanças.
Um desenvolvedor júnior, que conhece os frameworks do momento integra o seu time de um homem só. A cada instante, você precisa parar o que está fazendo para responder o que uma variável qualquer significa ou a razão de haverem tantos if e else aninhados, sendo que discussões recentes questionam esse método.
Seu aprendiz sugere features e refatoramentos, mas cada linha do seu código foi pensada para continuar intocável até o seu fim, afinal, "não se mexe no que está funcionando", além do mais, nem você consegue explicar alguns porquês.
Com essa situação hipotética, o argumento de “não basta o computador entender?” cai por terra. O código sujo exerce a mesma função do código limpo, mas não só a máquina lida com nossas abstrações. Escrever de forma simples e clara ajuda sua equipe e a você mesmo.
Aderindo à esta filosofia, as melhoras observadas são muitas, entre elas: produtividade, eficiência, colaboração, manutenção e evolução do software e redução de erros.
Regras gerais
Os princípios básicos do Clean Code são valiosos em qualquer estágio da jornada de um desenvolvedor. Eles não só podem como devem ser seguidos, pois representam um diferencial competitivo. Apesar de aparentemente óbvios, demonstram-se extremamente poderosos quando aplicados:
1) Defina bons nomes - use a quantidade de caracteres precisos para expressar significado, não tenha medo de nomes longos, mas de deixar informações implícitas.
2) Siga as convenções - indentação, padrões de nomenclatura, design, arquiteturas e diretrizes de linguagem.
3) KISS (Keep It Simple Stupid) - mantenha o mais simples possível.
4) DRY (Don't Repeat Yourself) - crie funções/métodos que possam ser usados em mais de um local. Evite duplicidade, reutilize código.
5) Cuidado com comentários - se um trecho de código necessita de “legenda”, significa que não está legível o suficiente.
6) Trate erros - mesmo “não funcionando”, o seu código deve funcionar. Antecipe-se, evite que o sistema pare e exiba mensagens significativas ao usuário.
7) Testabilidade - testes unitários devem ser parte integrante do desenvolvimento. Escreva código de forma que seja fácil realizá-los.
Conclusões
Em resumo, seguir os princípios do Clean Code é essencial para promover código legível e sustentável. Se você deseja aprofundar sua compreensão e dominar o arte de escrever código limpo, recomendo a leitura do livro original, fonte de insights e orientações práticas para se tornar um programador mais habilidoso e eficaz.
Referências
Ciclo de Vida do Software: o que é e quais são as etapas? - Blog UDS
Conheça os 7 princípios do Clean Code
Clean Code: O que é código limpo?