Clean Code é vida, dá até gosto quando navegamos por um código e o nome da variável é tão explicito que automaticamente você já associa o que aquela função está executando.
Quando estou codando, geralmente tenho dificuldade de criar nomes bons. Uma dica que sempre me ajuda é pensar no verbo/substantivo relacionado ao contexto do que está sendo criado.
Exemplo 1:
Aqui sei que estou buscando por todos os usuários.
const fetchAllUsers = () => ...
Aqui sei que estou buscando por um usuário pelo id.
const fetchUserById = (id) => ...
Nessas duas funções, o verbo é o mesmo, pois a ação é a mesma. Mas pelo substantivo ser no plural e outro no singular, já começa me indicar que fazem coisas diferentes...
Exemplo 2:
Aqui está executando uma busca, mas pelo quê?
const fetchAll = () => ...
Aqui está executando uma busca pelo id, mas do quê?
const fetchById = (id) => ...
Nesse segundo exemplo, temos que entrar na função pra destrinchar o retorno. Além de que fetchAll e fetchById são nomes bem genéricos. Já vi erro em API onde a pessoa estava quebrando a cabeça, e no final, o que estava acontecendo é que a pessoa fez duas funções com o nome igual no service de duas rotas diferentes. Na hora de importar para o controller, como os nomes eram iguais, acabou importando o service errado e aí o resultado você já sabe.
Acho válido o uso da nomeação usada no exemplo 2 quando a função ou variável já está dentro de um contexto que expecifica à qual entidade/recurso/substantivo se refere. Por exemplo, em uma classe UserRepository
, ter métodos nomeados como findAllUsers
ou findUserById
é considerado uma má prática também, trazendo uma certa redundância no código. Então, a forma de nomear trazida no exemplo 2 se encaixa muito bem nesse contexto.
O ideal é você sempre especificar a qual contexto x variável ou função está relacionada