Clean Code: boas práticas para manter o seu código limpo!

Afinal, o que é Clean Code? Clean Code é um estilo de desenvolvimento que tem por foco a facilidade para escrever, ler e manter o código.

Robert C. Martin, em seu livro: “Clean Code: A Handbook of Agile Software Craftsmanship”, afirma que a proporção de leitura para escrita do código é de 10:1. Por isso, um código bem escrito que facilite a leitura é não só desejável, mas necessário no cenário atual.

A maior tentação dos desenvolvedores é acreditar que o trabalho está completo com a funcionalidade recém desenvolvida ou o software finalizado. Contudo, um software nunca está completamente finalizado. Sempre há a necessidade de novas atualizações e lançamento de novas funcionalidades.

Pensando dessa forma, caso o software não esteja com um código limpo, o desenvolvimento e manutenção se tornarão cada vez mais complicados. Até chegarmos no ponto em que será mais simples começar o software do zero do que prosseguir com um código ruim.

E é por isso que esse post existe! Para evitar que você chegue nesse ponto de ter que começar um projeto do zero, simplesmente porque você não usou técnicas básicas como as que serão listadas a seguir. Continue lendo, para esse post, separei as principais boas práticas de Clean Code, baseado no livro do Robert C. Martin (que aliás, recomendo!).

Nomes são muito importante

É comum as pessoas serem apelidadas pelas suas características mais comuns. Para termos um código limpo, devemos fazer isso com ele. Nomear variáveis, funções, parâmetros, classes ou métodos de acordo com suas funcionalidades. Isso é essencial para um bom entendimento do código.

Ao definir um nome, precisamos ter em mente dois pontos principais:

  • Ser preciso: precisamos passar a ideia central da nossa variável ou método, sem dar voltas, sendo conciso e direto.
  • Não ter medo de nomes grandes: um nome bem descritivo, mesmo que seja grande, irá possibilitar uma melhor compreensão e posterior manutenção do código.

Para finalizar, é recomendável que:

  • Métodos ou Funções: devem ter nome de verbos, para assim, expressar quais são suas finalidades;
  • Classes e Objetos: deve ser utilizado substantivos.

Seja um verdadeiro autor do seu código

Autor do Código Limpo | Clean Code: boas práticas para manter o seu código limpo!

O código é uma história. Então, como um bom autor, devemos nos preocupar com a maneira de contar essa história. A ideia desse tópico é simples! Para estruturar um código limpo, é necessário criar funções simples, pequenas e claras. Segundo Robert, a primeira regra das funções é a seguinte:

“Elas precisam ser pequenas.”

Já a segunda regra das funções diz o seguinte:

“Elas têm de ser ainda menores.”

O que nosso grande guru está nos ensinando é o seguinte: as funções devem ter apenas uma tarefa e, assim, saber cumpri-la da maneira mais simples possível. Isso possibilita que um método seja reutilizado diversas vezes em seu código, facilitando sua manutenção à longo prazo.

Para ajudar a vida dos programadores, o paradigma de programação orientado a objetos auxilia na criação de métodos que podem ser utilizados em todas as funcionalidades do software.

Curso Online de Orientação a Objetos com Java

Comente. Mas só o necessário!

Comente o necessário e somente o necessário. Códigos são constantemente modificados, enquanto comentários, raramente. Assim, é comum um comentário deixar de ter significado, ou pior ainda, passar um significado falso depois de algum tempo.

Além disso, códigos com muitos comentários são tão ruidosos que, com o tempo, nossos olhos acabam ignorando todos. Então, o melhor não é comentar os códigos ruins e sim reescrevê-los.

Resumindo, caso seja necessário comentar, nunca esqueça de revisá-los para não se tornarem pistas falsas que mentem sobre a história que você está contando.

Utilize DRY

DRY é o acrônimo para Don’t repeat yourself (Não repita a si mesmo). É o conceito que diz que cada parte de conhecimento do sistema deve possuir apenas uma representação. Desta forma, evitando a ambiguidade do código. Em outras palavras, não deve existir duas partes do programa que desempenham a mesma função, ou seja, o famoso copiar e colar no código.

Mas porque evitar repetição? Simples!

Quem tem uma segunda casa na praia, ou no campo, sabe o quão complicado é garantir a manutenção das duas. Mesmo que a repetição possa parecer inofensiva em programas mais simples, ela pode vir a ser um problema à medida que o software vai crescendo e as manutenções e desenvolvimentos se tornam cada vez mais complexos.

Uma boa maneira de evitar a duplicidade do código é aplicar corretamente a técnica de responsabilidade única. Para cada função ou método, utilizar apenas uma parte do método (ou função). O correto é abstrair apenas essa parte e criar um novo!

Algumas ambiguidades de condições não são tão destrutivas ao código, mas com o tempo podem ser. Portanto, procure evitá-las o máximo possível.

Melhor prevenir do que remediar…

Esse famoso ditado se aplica ao desenvolvimento de software também. Bons desenvolvedores pensam que as coisas podem dar errado, pois isso eventualmente irá acontecer. Desta forma, o código deve estar preparado para lidar com esses problemas que surgirão.

Hoje a maioria das linguagens possuem recursos para tratar erros nos códigos através de Exceptions e blocos try-catch.

  • Exceptions: mecanismo que sinaliza eventos excepcionais. Por exemplo, tentar inserir o caractere “a” em uma variável do tipo inteiro;
  • Blocos try-catch:  capturam as exceções citadas. Portanto, devem ser utilizados de maneira global. Afinal de contas, os métodos já possuem suas funções (que não é tratar erros).

Se você já conhece lógica de programação e quer aprender uma linguagem que utiliza esse recurso, o nosso curso de Ruby on Rails ou de Python é ideal para você.

Para finalizarmos esse tópico, uma dica excelente para não gerar erros em seu código é simplesmente não utilizar “null”, tanto como parâmetro, quanto para retorno em funções. Muitas vezes, esses retornos exigem verificações desnecessárias que, caso não sejam feitas, podem gerar erros.

Regra de Escoteiro

Escoteiros e Código Limpo | Clean Code: boas práticas para manter o seu código limpo!

Os escoteiros possuem uma regra: deixe o acampamento mais limpo do que você o encontrou. Para desenvolvedores, podemos adaptar para:

“Deixe o código mais limpo do que estava antes de você mexer nele.”

Refatorar o código deve ser um hábito. É uma atividade essencial para a modernização do software e deve ser feita com muito cuidado para não impactar as funcionalidades existentes. Pensamentos como “isso é perder tempo valioso” ou “se tá funcionando melhor não mexer” são prejudiciais a longo prazo. O melhor é refatorar o mais rápido possível enquanto a lógica ainda está fresca na cabeça.

Contudo, não podemos esquecer que refatorar um código deve ser duplamente preciso. Em outras palavras, é uma necessidade para o bom funcionamento do software e, por isso, deve ser realizada com muita atenção para não gerar novos bugs.

Testes limpos

Testes Limpos | Clean Code: boas práticas para manter o seu código limpo!

Um código só está realmente limpo se ele for validado. Mas a questão é, como é possível manter um teste limpo? A resposta é simples, da mesma maneira que mantemos o nosso código limpo, com clareza, simplicidade e consistência de expressão.

Testes limpos seguem as regras do acrônimo FIRST (Fast, Indepedent, Repeatable, Self-validation, Timely).

  • Rapidez: os testes devem ser rápidos para que possam ser executados diversas vezes;
  • Independência: quando testes são dependentes, uma falha pode causar um efeito dominó dificultando a análise individual;
  • Repetitividade: deve ser possível repetir o teste em qualquer ambiente;
  • Auto validação: bons testes possuem como resultado respostas do tipo “verdadeiro” ou “falso”. Caso contrário, a falha pode se tornar subjetiva;
  • Pontualidade: os testes precisam ser escritos antes do código de produção, onde os testes serão aplicados. Caso contrário, o código pode ficar complexo demais para ser testado ou até pode ser que o código não possa ser testado.

Tenha orgulho do seu código!

Acima falamos sobre vários conceitos de Clean Code/Código limpo, mas Michael Feathers (autor do livro Legacy Code) conseguiu resumir Código Limpo em uma frase que resume tudo!

“Um código limpo sempre parece que foi escrito por alguém que se importava”

[easy-tweet tweet=”“Um código limpo sempre parece que foi escrito por alguém que se importava”” user=”BecodeTT” hashtags=”CleanCode, CodigoLimpo” template=”light”]

Se importar com um código é tomar cuidado na hora de:

  • Dar nomes
  • Criar funções pequenas e especificas
  • Não ser redundante
  • Estar sempre atento a erros
  • Não deixar de refatorar
  • Utilizar testes limpo para validações

No fim, a sensação de orgulho é recompensadora! O que compensa todo o trabalho duro durante o desenvolvimento!

Espero que você tenha gostado do post e que o artigo ajude você a melhorar o seu desempenho na hora de programar. Não esqueça de comentar o post com a sua opinião, iremos adorar ouvir de você! Abraços e até a próxima.

Curso completo para aprender Ruby on Rails

Written by Alysson Zanette

Principal responsável pelo desenvolvimento back-end do LMS Becode. Na Becode e TargetTrust, atua como DevOps, profissional responsável por criar o elo entre a área de desenvolvimento e a infraestrutura de TI. Hoje é reconhecido como uma das principais referências técnicas de ambas instituições de ensino, onde também atua como instrutor das linhas de formação em TI!

Entrevista de emprego para área de tecnologia? Veja como se portar! | Becode

Entrevista de emprego para área de tecnologia? Veja como se portar!

Linguagens de Alto Nível vs. Baixo Nível: qual é melhor?

Linguagens de Alto Nível vs. Baixo Nível: qual é melhor?