Executando verificação de segurança...
Em resposta a Como nomear melhor
3

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.

Carregando publicação patrocinada...
2

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

2

Concordo contigo, quando falamos de métodos de uma classe. Até porque isso ficaria bem legível, pois para chamar o método, obrigatoriamente a classe seria instanciada. Um exemplo é um controller chamando um service e pra isso você poderia fazer tipo:

const user = new userService();

E ai a partir disso você chama por exemplo o método fetchById:

const userData = await user.fetchByid(id);

E a outra forma seria pelos exports/imports numa abordagem mais funcional, ai faria mais sentido nomes mais descritivos.

1

Cara, sigo a mesma lógica que você para nomear. Acelera bastante o processo de encontrar um bom nome. obrigado pela contribuição. Sucesso!