¡¡¡Sea imperativo!!!
TL;DR: Las funciones con nombres poco claros ocultan la intención y confunden a los lectores. Utilice nombres descriptivos y orientados a la acción.
https://hackernoon.com/improving-the-code-one-line-at-a-time
Las funciones nombradas con términos genéricos obligan a los lectores a sumergirse en la implementación para comprender su comportamiento.
Esto desperdicia tiempo y aumenta las posibilidades de errores.
La denominación se vuelve aún más crítica cuando se trabaja con funciones independientes, donde el nombre de la clase no proporciona contexto adicional.
Esta cuestión está directamente relacionada con el principio de “cuéntalo, no preguntes” .
En lugar de exponer comportamientos ambiguos que obligan al llamador a inferir la funcionalidad, los nombres imperativos transmiten la acción exacta, guiando al lector sin necesidad de inspeccionar el código.
Al nombrar funciones de manera descriptiva, eliminas conjeturas innecesarias y te alineas con este principio.
public String dateFormatting(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void load() { System.out.println("Loading..."); }
public String formatDate(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void loadUserPreferences() { System.out.println("Loading user preferences..."); }
Puedes detectar este olor revisando los nombres de funciones que utilizan términos vagos como do , run , process , load , etc.
Los linters automatizados pueden marcar estos patrones o resaltar funciones con nombres demasiado genéricos.
Los nombres de las funciones deben crear una correspondencia clara uno a uno entre su nombre y su funcionalidad.
Romper esta biyección obliga a los desarrolladores a examinar los detalles del código para buscar contexto, lo que ralentiza la depuración, las revisiones y las extensiones.
Las herramientas de IA a veces generan nombres de funciones genéricos sin comprender su dominio.
Al utilizar IA, especifique que los nombres de las funciones deben ser descriptivos y orientados a la acción.
Los modelos de IA pueden ayudar a detectar nombres ambiguos comparando las firmas de funciones con las mejores prácticas de nombres predefinidas.
La combinación de IA con la revisión manual del código produce los mejores resultados.
Recuerde: los asistentes de IA cometen muchos errores
Sin instrucciones adecuadas | Con instrucciones específicas |
---|---|
Los nombres de funciones no son sólo etiquetas; son contratos con el lector.
Los nombres ambiguos rompen este contrato y generan confusión.
Los nombres descriptivos y orientados a la acción simplifican la comunicación y hacen que su código sea más fácil de mantener y ampliar.
Los olores del código son mi opinión .
Foto de britishlibrary en Unsplash
El nombre de una función debe ser un verbo o una frase verbal y debe tener significado.
Robert C. Martín
Este artículo es parte de la serie CodeSmell.