Desenvolvimento de Software – A Prática do Clean Code

Olá, pessoal!

Em dezembro de 2013, comecei a ler o livro Clean Code do autor Robert C. Martin e devo dizer que aprendi muita, muita coisa com ele. Para quem se recorda, na parte 9 sobre dicas para o desenvolvimento de um software fiz uma breve introdução ao Clean Code, como também venho elaborando alguns artigos recentes sobre este assunto.

Hoje é dia de entrar um pouco mais nos detalhes dessa prática e conhecer algumas orientações de como empregá-la. Limpeza no código já!

Imagem via Shutterstock

Imagem via Shutterstock

Antes de iniciar o artigo, gostaria de fazer um agradecimento ao Rômulo Pelachini, um mega profissional em programação, pela  gentileza em me emprestar o livro. Valeu, Rômulo!

Todos nós, desenvolvedores, temos o desejo de ver o nosso código funcionando da melhor forma, não é? Quando digo “funcionando”, não me refiro apenas à execução correta da funcionalidade, mas também à qualidade do código e o nível de expressividade que ele expõe. Afinal, quando implementado um código, o resultado será visto tanto pelo cliente quanto por nós mesmos. Quem já não se deparou com um código antigo e ficou por horas interpretando a lógica? Quem já não teve de refazer blocos de código por causa da falta de clareza? A propósito, vou deixar a questão da expressividade para outro artigo.

O conceito de Clean Code foi elaborado justamente para evitar a ilegibilidade do código e aprimorar a qualidade da nossa codificação. Na verdade, é um conjunto de práticas que deve ser adotado por qualquer programador que queira ser reconhecido como um bom profissional. Porém, ao contrário do que muitos pensam, não basta somente ler um livro e acreditar que já conhece as diretrizes do Clean Code. É preciso prática, raciocínio e, acima de tudo, determinação para produzir algo de qualidade. Por esse motivo, decidi reunir alguns pontos apresentados no livro e compartilhá-los aqui no PTI para disseminar essa prática. Leia-os atentamente e lembre-se deles ao implementar o seu próximo código.

1) Não é possível criar um código limpo de primeira
Por mais que um desenvolvedor tente, é praticamente impossível. Claro, é extremamente importante que um desenvolvedor já comece a programar com as diretivas do Clean Code em mente mas, eventualmente, ele acabará voltando ao código para refatorar ou renomear alguns métodos que ficaram passíveis de má interpretação. No entanto, isso é perfeitamente natural. Quando iniciamos uma nova implementação, não sabemos exatamente quais, quantos e como serão os métodos que devemos implementar. À medida que o código vai tomando forma é que começamos a nossa “limpeza”.

2) Pare de programar quando notar que o código está ruim
Evite implementar o código por completo e só depois partir para o Clean Code. A limpeza deve ser feita aos poucos, caso contrário, é bem provável que o desenvolvedor perca o foco do código como um todo. Aquela ideia de “vou deixar assim por enquanto e depois eu volto para arrumar” é uma passagem grátis para o esquecimento. Portanto, quando perceber que o código está tomando proporções inadequadas e apresentando sinais de duplicação, interrompa a implementação e faça uma limpeza antes de continuar. Na verdade, é a mesma situação de um bloco de cimento recém aplicado: aproveite para arrumá-lo enquanto ainda não está seco. Se ele secar, o trabalho de removê-lo ou reformá-lo será muito mais difícil.

3) Aprenda a programar com paciência
Um dos efeitos do Clean Code é o trabalho constante de remover e adicionar o mesmo código repetidas vezes. Isso faz parte do processo de maturidade para alcançar o nível ideal de qualidade. Já perdi a conta das vezes que criei, alterei, removi, criei novamente e renomeei uma classe. A cada etapa, eu levantava um ponto de vista diferente do código e o alterava para torná-lo mais claro.

Como analogia, imagine que você tenha acabado de se mudar para uma nova casa e está organizando os móveis da sala para descobrir qual é a acomodação mais confortável. Para isso, você provavelmente precisará mudar os móveis de lugar várias vezes, concorda? Esse é o sentido! Assim como você busca a melhor disposição dos móveis na sala, também deve buscar a melhor organização do código no seu programa. Aproveitando a analogia, lembre-se de que, da mesma forma que você receberá visitas na sua sala, o seu código também receberá “visitas” de outros programadores.

Em conclusão, se você deseja criar um código limpo e com qualidade, esteja preparado para desfazer e refazer blocos de código quantas vezes forem necessárias.

4) Considere a codificação como uma atividade de risco
Se um requisito funcional não é documentado, é simples refazer a documentação. Se houve uma falha na estimativa, é fácil refazer o cronograma. Porém, se um código estiver ruim, refazê-lo é algo demorado e, muitas vezes, custoso. Além disso, não se garante que ele terá o mesmo funcionamento como antes.

Devemos nos comprometer com a relevância da nossa codificação, visto que o resultado do código (e, consequentemente, da funcionalidade) está intimamente relacionado com o nosso nível de responsabilidade. A ideia aqui não é pressionar a consciência do programador e penalizá-lo por construir um código imperfeito, mas apenas sugerir que ele considere a importância dessa atividade no ciclo de vida do projeto.

5) Aumente a sua sensibilidade ao código
Conforme utiliza as práticas do Clean Code, o desenvolvedor produz e amplia uma habilidade conhecida como “sensibilidade ao código”. Este termo se refere à capacidade de visualizar um código mal escrito e imediatamente pensar em diferentes formas de limpá-lo. Renomear variáveis, desfazer blocos aninhados, refinar condições, extrair métodos e até mesmo considerar alternativas mais viáveis para tratar as regras de negócio são exemplos de sensibilidade técnica de um profissional. Quanto maior for este nível de sensibilidade, melhor serão as soluções propostas e desenvolvidas pelo desenvolvedor.

6) Codifique pensando na leitura
Uma boa recomendação para praticar o Clean Code é implementar o código já imaginando que outro desenvolvedor futuramente irá interpretá-lo. Na realidade, isso irá acontecer! Portanto, procure ler cada método logo após implementá-los e meça o nível de legibilidade. Ou então, tente se colocar no lugar de outra pessoa e encontre as dificuldades que ela possivelmente teria ao ler o seu código. Embora pareça uma tarefa maçante, é até gratificante, já que você acaba contemplando a qualidade do seu próprio código.

Leitores, sei que o artigo ficou um pouco extenso, mas espero ter transmitido as premissas adequadas para começar a praticar o Clean Code. Continuarei elaborando alguns artigos sobre este assunto nos próximos meses. Aguardem!

Um grande abraço a todos e até a próxima!

André Celestino

Mais artigos deste autor »

Desenvolvedor de software há 7 anos e autor do blog AndreCelestino.com. Graduado em Sistemas de Informação e pós-graduado em Engenharia e Arquitetura de Software com ênfase em Desenvolvimento Ágil. Atualmente trabalha como Engenheiro de Software.


13 Comentários

jortron
4

Excelente artigo,bem escrito e límpido,atinge seu objetivo com simplicidade.
Desde quando comecei os meus passos iniciais em programação,fui orientado nesse rumo,mais por heurística do que como metodologia.Bom saber que isso está agora formalizado e estudável.
Mantenha-se nesse caminho.

Chell
5

Bem interessante. Sou só uma curiosa que tem tentado se aproximar da área, mas faço layouts por hobby e sei bem como é deixar pra alterar coisas depois e acabar esquecendo. 🙁 Acho que é importante que isso seja mais divulgado. Nada como um código limpo pra valorizar um profissional, e até para tornar edições algo menos impossível. 😛
Abs.

André Luis Celestino
6

Olá, jortron!
É bom saber que você também é um partidário do Clean Code! Ao meu ver, escrever um código limpo se tornou uma arte de programação. Cabe ao desenvolvedor aperfeiçoá-la para alcançar a excelência.
Obrigado pelo comentário!

André Luis Celestino
7

Sem dúvidas, Chell! Uma das grandes vantagens do código limpo é facilitar a atividade de manutenção e aumentar a produtividade dos desenvolvedores, já que a interpretação do código se torna mais fácil.
Espero que você ingresse na área de TI e tenha sucesso!
Até mais!

litodisanti
8

Ótimo artigo,parabéns!!! Sou estudante de Análise de Sistemas, tenho 39 anos(As vezes penso em desistir pela idade),mas estou tentando mudar de ramo profissional,e aprendi o quanto é essencial o uso das melhores práticas no desenvolvimento de software e no dia a dia é que isso vai se tornando cada vez mais concreto e menos abstrato. Mais uma vez,meus parabéns pelo artigo.

André Luis Celestino
9

Olá, litodisanti!
Em primeiro lugar, obrigado pelo comentário!
Jamais se preocupe com a idade. Nunca é tarde para aprender novas experiências profissionais! Além disso, eu considero uma pessoa de 39 anos bastante nova!
Boa sorte na sua carreira profissional!
Abraço!

Mateus Maciel Nere
11

Parabéns pelo artigo, André! Com toda certeza irei usar essas dicas em meus futuros códigos e continue escrevendo pois pretendo assimilar mais coisas sobre esse assunto.

André Luis Celestino
12

Olá, Mateus! Obrigado pelo feedback!
Isso mesmo! Adquira o hábito de programar utilizando as práticas do Clean Code e, sem dúvidas, a qualidade do seu código será notável! Continuarei elaborando mais alguns artigo sobre o tema e espero que eles possam lhe ajudar!
Abraço!

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!