Clean Code: 1 Introdução
"Até código ruim pode funcionar, porém todo ano empresas perdem um número incontável de horas por causa de códigos mal escritos... não precisa ser assim."
O livro Clean Code: A Handbook of Agile Software Craftsmanship traduzido para o português como Código Limpo: Habilidades Práticas do Agile Software é um dos mais populares da nossa área. Inclusive já vi empresas que somente contratavam um programador se ele já tivesse lido este livro.
Robert C. Martin não somente é conhecido por este livro, como também por ser co-autor do The Agile Manifesto.
A missão principal do livro é melhorar ainda mais o estado da arte no desenvolvimento de software. O que foi escrito nesse livro é o que funciona na prática e não o que deveria funcionar na teoria.
O que você irá ler é o que o autor fez, não o que ele acha que você deveria fazer.
Um dos pontos que o livro bate é que pequenos detalhes importam, então não cabem pensamentos como "ah esse detalhe X é bobeira"… pois pode não ser. Talvez para projetos pequenos nada disto importa, mas quando o tempo passa e a complexidade aumenta é notável o reflexo negativo espalhado por todo o projeto causado pelo descuido inicial.
Algo importante que está no prefácio escrito por James O. Coplien e que casa perfeitamente com os princípios defendidos por Robert C. Martin é que 80% do que fazemos em desenvolvimento de software pode ser considerado como reparo. Então o que podemos fazer para facilitar esta situação? Eles trazem para a mesa uma filosofia japonesa para controle de qualidade chamada Total Productive Maintenance:
O foco deste controle de qualidade está na manutenção e não na produção.
Diferente, não? Na maioria das vezes o foco é cegamente no aumento da produção, mas mal sabem as pessoas que manutenção pode se tornar aquelas bolas de ferro amarradas no pé e que te impossibilitam de andar/produzir mais rápido no final das contas.
Em detalhes, a filosofia é composta por 5 conceitos:
Ordenação: nomear variáveis, funções e arquivos de forma apropriada para que você consiga encontrar o que está procurando.
Sistematizar: cada coisa no seu lugar. Um pedaço de código deve estar onde você espera encontrá-lo, do contrário, mova ele para lá.
Limpeza: mantenha o seu código limpo, como por exemplo, indentação correta e remover blocos de código antigos que estão comentados.
Padronização: todo mundo do time faz as coisas da mesma forma, no mesmo estilo.
Disciplina: seja disciplinado, siga as regras e esteja aberto a mudanças pessoais para se adaptar ao que foi combinado.
Em resumo, construa programas que sejam mais fáceis de refatorar, de se fazer manutenção. Escrever um código legível é tão importante quanto fazer ele funcional, pois do contrário você não vai conseguir evoluí-lo.
Este livro irá lhe ensinar o que você precisa aprender sobre a heurística da programação, princípios, patterns e também o que colocar em prática para chegar ao ponto de se sentir genuinamente incomodado quando encontrar algo fora do lugar.
Acessar o próximo artigo onde vamos entender o que é um código limpo e código sujo: Clean Code: 2 O que é código limpo?