一定要!!
TL;DR:名称不明确的函数隐藏了意图并使读者感到困惑。使用描述性的、面向行动的名称。
以通用术语命名的函数迫使读者深入研究实现以理解其行为。
这会浪费时间并增加出错的机会。
在使用独立函数时,命名变得更加重要,因为类名称不提供额外的上下文。
这个问题直接关系到告诉,不要问的原则。
命令式名称不会暴露迫使调用者推断功能的模糊行为,而是传达确切的操作,引导读者无需检查代码。
当您以描述性方式命名函数时,您可以消除不必要的猜测并符合这一原则。
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] 手册
您可以通过检查使用模糊术语的函数名称来检测这种气味,例如 do、run、process、load 等
自动 linter 可以标记这些模式或突出显示具有过于通用名称的函数。
[X] 初学者
函数名称应该在其名称和功能之间创建清晰的一一对应关系。
打破这种双射会迫使开发人员检查代码细节以了解上下文,从而减慢调试、审查和扩展速度。
人工智能工具有时会在不了解您的领域的情况下生成通用函数名称。
使用 AI 时,指定函数名称必须具有描述性且面向操作。
人工智能模型可以通过将函数签名与预定义的命名最佳实践进行比较来帮助检测不明确的名称。
将人工智能与手动代码审查相结合会产生最佳结果。
记住:人工智能助手会犯很多错误
Without Proper Instructions | With Specific Instructions |
---|---|
ChatGPT | ChatGPT |
Claude | Claude |
Perplexity | Perplexity |
Copilot | Copilot |
Gemini | Gemini |
函数名称不仅仅是标签;它们是与读者的合同。
不明确的名称会破坏此契约并导致混乱。
描述性的、面向操作的名称简化了沟通,并使您的代码更易于维护和扩展。
代码味道是我的观点。
照片由 unsplash 上的 britishlibrary 拍摄
函数名称应该是动词或动词短语,并且需要是
有意义
罗伯特·C·马丁
本文是 CodeSmell 系列的一部分。
以上是代码异味 - 非命令式函数名称的详细内容。更多信息请关注PHP中文网其他相关文章!