DEV Community

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

Posted on • Edited on

3 2 1 1 1

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🚨

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

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

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

AWS GenAI LIVE!

GenAI LIVE! is a dynamic live-streamed show exploring how AWS and our partners are helping organizations unlock real value with generative AI.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️