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
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.