Clean Code
Vemos bastante essa palavra nas documentações do SonarQube então vale a pena explicar melhor.
A meta é conseguir chegar em um código que esteja respeitando as regras do clean code, e o que isso significa? Significa o código precisa atingir alguns atributos de consistência, intencionalidade, adaptabilidade e responsabilidade.
Consistência
Código deve ser uniforme e convencional. Todo o código deve parecer simular e seguir um padrão regular.
- Formatação
- Igualmente entre todos que contribuem para um projeto. Algumas pessoas usam 4 espaços para diferenciar os blocos de um arquivo YAML e outras usam 2.
- É bom utilizar um linter para atingir este objetivo.
- Convencional
- Utilizar os recursos da linguagem de forma apropriada.
- Identificável
- Os nomes para variáveis, funções, etc seguem um padrão baseado na convenção da linguagem.
Intencional
Código preciso e proposital sendo que cada instrução faz sentido.
-
Limpo e Claro
- Código é autoexplicativo e escrito de forma direta sem ambiguidades.
-
Lógico
- Instruções bem formatadas e sólidas. Livre de contradições e comandos imprevisíveis ou questionáveis.
-
Completo
- Código usado de forma adequada sendo funcional e atingindo os objetivos implícitos. Por exemplo uma função que recebe vários parâmetros, mas funciona com metade deles.
-
Eficiente
- Usa recursos sem desperdício, priorizando opções mais econômicas para uso de memória, processador, disco e rede.
Adaptabilidade
O código é estruturado para ser fácil de evoluir e desenvolver com confiança. Ele torna fácil estender ou reaproveitar suas partes e promove mudanças localizadas sem efeitos colaterais indesejáveis.
- Focado
- O código tem um escopo único e específico. As unidades fazem o que têm que fazer sem acúmulo de instrução ou complexidade.
- Distinto
- Cada parte faz o que precisa fazer sem duplicação indevida de código.
- Modular
- Código organizado com separação entre suas partes, sendo que os relacionamentos dentro do código são bem gerenciados.
- Testado
- Tem cobertura de testes
Responsábilidade
Leva em consideração as obrigações éticas em relação aos dados.
-
Legal
- Respeita a regulamentação de licenciamento e direitos autorais exercendo os direitos do criador e honrando os direitos de outros de licenciar seu próprio código.
-
Confiável
- Preserva informações privadas e sensíveis. Uso de credenciais dentro do código é um ótimo exemplo disso.
-
Respeitoso
- Não utiliza linguagem discriminatória e ofensiva.