Regra
Faça uma função objetivo autoexplicativo.
Nome devem devem comunicar comunicar o que função função
faz sem exigir leitores examinem examinar a implementação.
Idiomas suportados: 45+Introdução
Nomes de funções que não revelam seu propósito forçam os desenvolvedores a ler toda a implementação para entender o comportamento. Uma função nomeada process() ou handle() poderia fazer qualquer coisa, exigindo esforço mental para deduzir seu propósito real. Nomes claros e descritivos como validateUserEmail() ou calculateOrderTotal() comunicar a intenção imediatamente, tornando o código auto-documentável.
Por que isso importa
Manutenibilidade do código: Nomes de funções pouco claros atrasam a compreensão. Desenvolvedores perdem tempo lendo implementações para entender o que as funções fazem, em vez de focar na lógica de negócios. Isso se agrava ao retornar ao código meses depois ou quando novos membros da equipe se juntam.
Uso incorreto: Nomes de função ambíguos aumentam a chance de uso indevido. Uma função chamada update() pode validar, transformar, persistir ou notificar, levando os desenvolvedores a usá-lo incorretamente porque o nome não especifica o comportamento. Nomes claros evitam o uso indevido ao documentar restrições e efeitos colaterais.
Exemplos de código
❌ Não-conforme:
function process(data) {
const result = data.map(item => ({
...item,
processed: true,
timestamp: Date.now()
}));
db.save(result);
notifyService.send(result);
return result;
}
Por que está errado: O nome process() não revela nada sobre o que acontece com os dados. Os leitores devem examinar a implementação para saber que ela transforma itens, salva no banco de dados e envia notificações. Os efeitos colaterais e as responsabilidades da função estão ocultos.
✅ Compatível:
function markItemsAsProcessedAndSave(data) {
const processedItems = data.map(item => ({
...item,
processed: true,
timestamp: Date.now()
}));
db.save(processedItems);
notifyService.send(processedItems);
return processedItems;
}
Por que isso importa: O nome declara explicitamente que a função marca itens como processados e os salva. Os leitores entendem imediatamente o propósito principal da função sem ler a implementação. O nome sugere efeitos colaterais (salvar no banco de dados), estabelecendo expectativas apropriadas.
Conclusão
Nomes de funções devem responder "o que isso faz?" sem exigir inspeção de código. Inclua verbos que descrevam ações e substantivos que descrevam alvos. Se um nome se tornar muito longo, a função provavelmente faz demais e deve ser dividida.
.avif)
