DEV Community

Cover image for Um pouco de clean code com Clojure 🔮
Marcos Henrique
Marcos Henrique

Posted on • Edited on

Um pouco de clean code com Clojure 🔮

Nomes significativos 😏

O nome de um símbolo ou função deve "responder a todas as grandes questões".
Deve dizer por que existe, o que faz e como é usado.
Se um nome exigir um comentário, ele não revela sua intenção.

Forma incorreta

Forma correta

Nomes de métodos 🤔

Os métodos devem ter nomes de verbos ou frases verbais, como post-payment, delete-page ou save. Os acessadores, mutadores e predicados devem ser nomeados por seu valor e prefixados com get, set.

Funções 🧐

  • Primeira regra: funções devem ser enxutas;
  • Segunda regra: é que elas devem ser menores que isso. Isso implica que os blocos dentro de instruções if, else, while e etc. devem ter uma linha. Provavelmente essa linha deve ser uma chamada de função. Isso não apenas mantém a função anexa pequena, mas também agrega valor ao documentário, porque a função chamada dentro do bloco pode ter um nome bem descritivo.

Argumentos de funções 🤠

Uma função não deve ter mais de três argumentos.
Mantenha o número de argumentos o mais baixo possível.

Agora, quando digo para reduzir o tamanho de uma função, você definitivamente deve pensar em como reduzir o try-catch, pois ele já torna seu código muito maior.
Minha resposta é criar uma função contendo apenas as instruções try-catch-finally. E separe os corpos de try /catch /finally block em funções separadas

Isso torna a lógica muito clara.
Os nomes das funções descrevem facilmente o que estamos tentando alcançar.
O tratamento de erros pode ser ignorado.
Isso fornece uma boa separação que facilita a compreensão e modificação do código.

Error-Handling 👨‍🏭👩‍🏭

a função deve fazer uma coisa.
O tratamento de erros é outra coisa.
Se uma função tem try keyword, então deve ser a primeira palavra-chave e não deve haver nada após os blocos catch/finally.

🚨Se seu código precisa ser comentado, você está fazendo algo errado🚨

Top comments (2)

Collapse
 
jimbolino profile image
Jimbolino

Sounds interesting, but I cannot understand a word of it ;-)

Collapse
 
wakeupmh profile image
Marcos Henrique

I Will translate that to english ☺️
I'm from Brazil and I saw few posts about this in my native language