Soyez impératif !!
TL;DR : les fonctions dont les noms ne sont pas clairs cachent l'intention et confondent les lecteurs. Utilisez des noms descriptifs et orientés vers l'action.
Les fonctions nommées avec des termes génériques obligent les lecteurs à se plonger dans l'implémentation pour comprendre leur comportement.
Cela fait perdre du temps et augmente les risques d'erreurs.
La dénomination devient encore plus critique lorsque vous travaillez avec des fonctions autonomes, où le nom de la classe ne fournit pas de contexte supplémentaire.
Ce problème est directement lié au Principe « Dites, ne demandez pas ».
Au lieu d'exposer des comportements ambigus qui obligent l'appelant à déduire des fonctionnalités, les noms impératifs transmettent l'action exacte, guidant le lecteur sans avoir besoin d'inspecter le code.
Lorsque vous nommez les fonctions de manière descriptive, vous éliminez les conjectures inutiles et vous vous alignez sur ce principe.
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..."); }
[X] Manuel
Vous pouvez détecter cette odeur en examinant les noms de fonctions qui utilisent des termes vagues comme do, run, processus, load, etc. .
Les linters automatisés peuvent signaler ces modèles ou mettre en évidence des fonctions avec des noms trop génériques.
[X] Débutant
Les noms de fonctions doivent créer une correspondance claire et univoque entre leur nom et leur fonctionnalité.
Briser cette bijection oblige les développeurs à examiner les détails du code pour le contexte, ce qui ralentit le débogage, les révisions et les extensions.
Les outils d'IA génèrent parfois des noms de fonctions génériques sans comprendre votre domaine.
Lorsque vous utilisez l'IA, précisez que les noms de fonctions doivent être descriptifs et orientés vers l'action.
Les modèles d'IA peuvent aider à détecter les noms ambigus en comparant les signatures de fonction avec les meilleures pratiques de dénomination prédéfinies.
La combinaison de l'IA avec la révision manuelle du code donne les meilleurs résultats.
Rappelez-vous : les assistants IA font beaucoup d'erreurs
Without Proper Instructions | With Specific Instructions |
---|---|
ChatGPT | ChatGPT |
Claude | Claude |
Perplexity | Perplexity |
Copilot | Copilot |
Gemini | Gemini |
Les noms de fonctions ne sont pas de simples étiquettes ; ce sont des contrats avec le lecteur.
Les noms ambigus rompent ce contrat et prêtent à confusion.
Les noms descriptifs et orientés vers l'action simplifient la communication et facilitent la maintenance et l'extension de votre code.
Les odeurs de code sont mon opinion.
Photo par britishlibrary sur Unsplash
Un nom de fonction doit être un verbe ou une phrase verbale, et il doit l'être
significatif
Robert C. Martin
Cet article fait partie de la série CodeSmell.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!