Regla
Hacer una función propósito sea evidente.
Nombre de deben comunicar comunicar lo función función
hace sin requiere los lectores que examinar la implementación.
Idiomas admitidos: 45+Introducción
Los nombres de funciones que no revelan su propósito obligan a los desarrolladores a leer toda la implementación para entender su comportamiento. Una función llamada process() o handle() podría hacer cualquier cosa, requiriendo un esfuerzo mental para deducir su propósito real. Nombres claros y descriptivos como validateUserEmail() o calcularTotalPedido() comunicar la intención de inmediato, haciendo que el código se autodocumente.
Por qué es importante
Mantenibilidad del código: Los nombres de funciones poco claros ralentizan la comprensión. Los desarrolladores pierden tiempo leyendo implementaciones para entender qué hacen las funciones en lugar de centrarse en la lógica de negocio. Esto se agrava al volver al código meses después o cuando se incorporan nuevos miembros al equipo.
Uso incorrecto: Los nombres de funciones ambiguos aumentan la probabilidad de uso indebido. Una función llamada update() podría validar, transformar, persistir o notificar, lo que lleva a los desarrolladores a usarlo incorrectamente porque el nombre no especifica el comportamiento. Los nombres claros previenen el uso indebido al documentar las restricciones y los efectos secundarios.
Ejemplos de código
❌ No conforme:
function process(data) {
const result = data.map(item => ({
...item,
processed: true,
timestamp: Date.now()
}));
db.save(result);
notifyService.send(result);
return result;
}
Por qué es incorrecto: El nombre process() no revela nada sobre lo que sucede con los datos. Los lectores deben examinar la implementación para saber que transforma elementos, guarda en la base de datos y envía notificaciones. Los efectos secundarios y las responsabilidades de la función están ocultos.
✅ Conforme:
function markItemsAsProcessedAndSave(data) {
const processedItems = data.map(item => ({
...item,
processed: true,
timestamp: Date.now()
}));
db.save(processedItems);
notifyService.send(processedItems);
return processedItems;
}
Por qué es importante: El nombre indica explícitamente que la función marca los elementos como procesados y los guarda. Los lectores comprenden inmediatamente el propósito principal de la función sin necesidad de leer la implementación. El nombre sugiere efectos secundarios (guardar en la base de datos), estableciendo expectativas adecuadas.
Conclusión
Los nombres de las funciones deberían responder a "¿qué hace esto?" sin requerir una inspección del código. Incluya verbos que describan acciones y sustantivos que describan objetivos. Si un nombre se vuelve demasiado largo, es probable que la función haga demasiado y deba dividirse.
.avif)
