Nomes Significativos: A Base de um Código Limpo - Cap 2

Nomes Significativos: A Base de um Código Limpo
Seja bem vindo a continuidade da série de posts sobre Código Limpo, devagar e sempre é o lema.
Se você já passou um tempo depurando código, provavelmente já se deparou com nomes no mínimo complicados de decifrar. Nomes vagos, sem significado, que te fazem perder tempo tentando entender o que está acontecendo. Pois é exatamente disso que Robert C. Martin fala no capítulo 2 do Código Limpo: a importância de nomes significativos.
São vários os pontos que Martin destaca, mas selecionei aqueles que mais fazem sentido na minha caminhada como desenvolvedor. Espero que também te ajude!
Evite informações falsas e confusas
O primeiro ponto é evitar nomes que passam informações erradas ou ambíguas. Se um método retorna uma lista, não chame de getUser
, mas sim getUserList
. Se uma variável representa um valor fixo, evite nomes como total
quando, na verdade, ela é um limit
.
Escreva para pessoas, não para o compilador
O compilador não se importa se seu código é legível, mas você e sua equipe sim. Se um nome pode ser lido e compreendido sem esforço, você reduz a necessidade de explicações extras e comentários desnecessários. Um bom nome já explica a intenção do código por si só.
(E não, não estou dizendo para não usar comentários. Pelo contrário, o contexto manda na situação!)
Prefira nomes pronunciáveis e fáceis de buscar
Tente dizer isso em voz alta: xn4tmp
(Ok, talvez o exemplo seja exagerado... ou não, depende do que você já passou nessa vida). Agora tente pesquisar no seu projeto por dataBuffer
. Qual deles você acha que seria mais fácil de encontrar e entender no futuro?
Além de serem claros, os nomes devem ser fáceis de buscar no código. Evite siglas obscuras e abreviações que não sejam amplamente conhecidas.
Interfaces x Implementações
Se você tem uma interface e uma implementação concreta, nomeie-as de forma lógica. Em vez de IDatabase
e DatabaseImpl
, prefira Database
para a interface e algo como MySQLDatabase
para a implementação.
Isso evita poluição de nomes e torna o código mais intuitivo. (Eu sei que isso é um pouco polêmico. Eu usava o "I" até um tempo atrás, mas convenhamos, quase toda IDE decente hoje indica o tipo de arquivo que você está manipulando. A não ser que você use o Bloco de Notas como editor, dá para deixar os arquivos mais expressivos.)
Não force um mapeamento mental
Quando os nomes são ruins, quem lê o código precisa ficar traduzindo mentalmente o que está acontecendo. Isso é um desperdício de tempo e energia. O código deve ser óbvio à primeira vista.
Nomeando classes e métodos
- Classes devem ser substantivos. Exemplo:
User
,OrderProcessor
,InvoiceService
. - Métodos devem ser verbos. Exemplo:
calculateTotal()
,sendEmail()
,saveUser()
. Isso deixa claro que eles executam ações.
Seja consistente nos nomes
Se você chama algo de getCustomer()
em um lugar, não use fetchUser()
em outro para fazer a mesma coisa. Isso cria confusão. Escolha uma palavra e seja consistente.
Use o vocabulário do domínio
Se você está trabalhando em um sistema bancário, chame sua classe de Account
, e não de DataHolder
. Utilize nomes que façam sentido dentro do contexto do seu problema.
Adicione contexto significativo
Às vezes, um nome isolado não é suficiente. Se você tem uma variável address
, pode não estar claro se é um endereço residencial, de entrega ou IP. shippingAddress
ou ipAddress
resolvem essa ambiguidade.
Nomes são uma das partes mais importantes do código. Se você dedicar tempo para nomear bem suas variáveis, métodos e classes, a legibilidade do seu código melhora automaticamente. Seguindo essas práticas, você escreve um código que não precisa de um manual de instruções para ser entendido.
Gostou do conteúdo? Compartilhe sua opinião nos comentários! 🚀
Obrigado por chegar até aqui, até o próximo post!
Muito explicativo!
ResponderExcluir