#2 — Clean Code: Boas práticas para escrever códigos impecáveis!

João Roberto da Paixão
Desenvolvendo com Paixão
5 min readOct 8, 2018

Na primeira parte desse artigo eu falei um pouquinho sobre o que é Clean Code e qual o real impacto de escrever código limpo no mundo do desenvolvimento de software.

O Clean Code nos dá uma serie de boas práticas que podemos aplicar no nosso código para torna-lo limpo e objetivo. Nesse artigo vou exemplificar algumas dessas práticas utilizando a linguagem PHP, porém, os conceitos escritos aqui podem ser facilmente adaptados para qualquer linguagem.

Somos autores do nosso código

Esse é um conceito simples, porém muito importante! Devemos comparar a escrita de um código como a de um livro, em ambos os casos, somos autores, e todo autor tem leitores! Passamos dez vezes mais tempo lendo o código do que escrevendo-o, por tanto, seja um verdadeiro autor e escreva seu código como se fosse uma história de fácil leitura.

Nomes significativos

Você já reparou que no processo de desenvolvimento de um software, damos nomes para praticamente tudo? Variáveis, funções, métodos, parâmetros, classes, objetos, arquivos fonte, diretórios, projetos, branchs do controle de versão e etc.. Muita coisa né?!

Os nomes estão por toda parte, escolher bons nomes leva tempo, mas economiza muito mais!

Veja algumas regras simples para a criação de bons nomes.

Use nomes que revelem seu propósito

Se um nome requer um comentário, então ele não revela seu propósito!

Devemos escolher nomes que sejam claros e objetivos, que expressam claramente a sua intenção.

Use nomes passíveis de busca

Não abrevie e evite siglas, exceto se todos conhecerem. (Exemplo: API, pt-BR)

A variável $e além de estar abreviada, não é passível de busca, pois a letra “e” sozinha, compõem diversos outros nomes…

Evite números mágicos

Números mágicos são aqueles números aleatórios que de vez em quando você acaba encontrando no código, eles são “mágicos” porquê se assemelham com o truque de um mágico, sendo necessário uma explicação para que sejam entendidos. Veja o código abaixo:

Você sabe o que significa o número 10?! Pois é…

Para evitar os números mágicos, sempre que possível utilize constantes para representar esses valores.

Agora ficou mais claro, certo?

Condicionais

Utilize booleanos de forma implícita

Aproveitando o gancho do código acima, recomendo que você utilize, booleanos de forma implícita.

No exemplo acima, estamos verificando se o valor do grupo administrador existe no array $gruposAcesso através da função in_array(), essa função sempre retorna um boolean, sendo assim faz muito mais sentido retornar o valor da função diretamente!

Evite condicionais negativos

Porquê? porque é mais difícil de ler, simples assim!

Se você tiver um método que checa um condicional negativo e quiser que esse método retorne true quando a condição for verdadeira, você vai ter que utilizar o operador de negação em uma condição que já testa a negação, isso pode acabar confundido um pouco a leitura do código.

Encapsule condicionais

Dessa maneira você estimula o reaproveitamento e facilita a manutenção do código, se precisar mudar essa condição um dia, você irá mudar em um único local. Outra vantagem é que você acaba evitando possíveis erros de implementação — o programador pode escrever “published” de forma errada, por exemplo — trazendo pra dentro do objeto a responsabilidade de lidar com o condicional.

Comentários

Não comente o óbvio

Não faça comentários irrelevantes, eles só poluem o código…

Não devem explicar o código

Lembre-se que o código deve ser de fácil entendimento e leitura, deve ser comparado como uma história. Por tanto, você não deve fazer um comentário para explicar o código, ele deve ser auto explicativo.

Não use comentários para versionar o código

Utilize ferramentas apropriadas pra isso, se sua intenção é versionar o código, utilize um controle de versão como o Git ou Subversion, por exemplo.

Funções

Dê preferência para funções nativas

Além de limpar o código economizando algumas linhas, as funções nativas são executas mais rápidas.

Funções pequenas!

Você tem uma função que é composta por várias linhas de códigos? Então você tem um problema! Funções com várias linhas são difíceis de serem entendidas e praticamente impossíveis de serem testadas. Outro ponto negativo, é que sua função provavelmente tem mais de uma responsabilidade, o que quebra o conceito de Single responsibility principle do SOLID. — O que é SOLID: O guia completo para você entender os 5 princípios da POO.

Veja a função abaixo, não se preocupe entender tudo o que ela faz, apenas observe o quão complexo ela parece ser.

Por esses motivos é muito importante que você escreva funções pequenas, que possuem apenas uma responsabilidade e que sejam testáveis. Vamos refatorar a função acima pra algo como:

Bem melhor, certo?

Fonte: https://deliciousbrains.com/refactoring-php-code-better-readability

Evite o uso de flags como parâmetro

Porquê? porque o uso de flags indicam que essa função faz mais de uma coisa. Lembre-se, funções devem fazer apenas uma coisa.

Veja o exemplo abaixo:

Fonte: https://github.com/jupeter/clean-code-php#avoid-side-effects

Conclusão

Claro que o Clean Code não se limita somente nos tópicos citados acima, na verdade o assunto é bem amplo. Mas, o intuito desse artigo é instigar você a buscar e estudar mais sobre o assunto.

Mais uma vez, recomendo a leitura do livro:

Vamos conversar a respeito? Deixei o seu comentário!

--

--

João Roberto da Paixão
Desenvolvendo com Paixão

Eterno aprendiz que compartilha aquilo que aprende. Apaixonado por tecnologia, desenvolvimento pessoal e investimentos. Pai de família, um cara tranquilo =) !