首页 > web前端 > js教程 > 代码异味 - 非命令式函数名称

代码异味 - 非命令式函数名称

DDD
发布: 2025-01-10 09:49:41
原创
776 人浏览过

一定要!!

TL;DR:名称不明确的函数隐藏了意图并使读者感到困惑。使用描述性的、面向行动的名称。

问题

  • 功能用途不明确
  • 认知负荷增加
  • 误导性上下文
  • 可读性降低
  • 艰难的合作
  • 隐藏功能

解决方案

  1. 使用面向动作的动词
  2. 使名称具有描述性
  3. 反映函数的目的
  4. 避免通用术语
  5. 提供有意义的上下文
  6. 明确表达单一责任
  7. 将行动与结果相匹配

重构

Code Smell  - Non-Imperative Functions Names

重构 005 - 用函数名称替换注释

马克西·孔蒂耶里 ・22 年 6 月 7 日

#javascript #初学者 #重构 #编程

语境

以通用术语命名的函数迫使读者深入研究实现以理解其行为。

这会浪费时间并增加出错的机会。

在使用独立函数时,命名变得更加重要,因为类名称不提供额外的上下文。

这个问题直接关系到告诉,不要问的原则

命令式名称不会暴露迫使调用者推断功能的模糊行为,而是传达确切的操作,引导读者无需检查代码。

当您以描述性方式命名函数时,您可以消除不必要的猜测并符合这一原则。

示例代码

错误的

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] 手册

您可以通过检查使用模糊术语的函数名称来检测这种气味,例如 dorunprocessload

自动 linter 可以标记这些模式或突出显示具有过于通用名称的函数。

标签

  • 命名

等级

[X] 初学者

为什么双射很重要

函数名称应该在其名称和功能之间创建清晰的一一对应关系。

打破这种双射会迫使开发人员检查代码细节以了解上下文,从而减慢调试、审查和扩展速度。

人工智能一代

人工智能工具有时会在不了解您的领域的情况下生成通用函数名称。

使用 AI 时,指定函数名称必须具有描述性且面向操作。

人工智能检测

人工智能模型可以通过将函数签名与预定义的命名最佳实践进行比较来帮助检测不明确的名称。

将人工智能与手动代码审查相结合会产生最佳结果。

尝试一下!

记住:人工智能助手会犯很多错误

Without Proper Instructions With Specific Instructions
ChatGPT ChatGPT
Claude Claude
Perplexity Perplexity
Copilot Copilot
Gemini Gemini

结论

函数名称不仅仅是标签;它们是与读者的合同。

不明确的名称会破坏此契约并导致混乱。

描述性的、面向操作的名称简化了沟通,并使您的代码更易于维护和扩展。

关系

Code Smell  - Non-Imperative Functions Names

代码气味 33 - 缩写

马克西·孔蒂耶里 ・ 十一月 24 '20

#哎呀 #codenewbie #编程 #教程
Code Smell  - Non-Imperative Functions Names

代码气味 153 - 名字太长

马克西·孔蒂耶里 ・ 2022 年 7 月 29 日

#javascript #webdev #初学者 #编程
Code Smell  - Non-Imperative Functions Names

代码气味 38 - 抽象名称

马克西·孔蒂耶里 ・ 2020 年 11 月 30 日

#哎呀 #codenewbie #命名 #webdev
Code Smell  - Non-Imperative Functions Names

代码气味 174 - 属性中的类名称

马克西·孔蒂耶里 ・22 年 10 月 29 日

#javascript #webdev #初学者 #编程

参见

Code Smell  - Non-Imperative Functions Names

名字到底是什么? — 第一部分:探索

马克西·孔蒂耶里 ・ 21 年 2 月 9 日

#codenewbie #教程 #webdev #哎呀
Code Smell  - Non-Imperative Functions Names

名字到底是什么 - 第二部分康复

马克西·孔蒂耶里 ・21 年 5 月 23 日

#教程 #codenewbie #编程 #webdev

免责声明

代码味道是我的观点。

制作人员

照片由 unsplash 上的 britishlibrary 拍摄


函数名称应该是动词或动词短语,并且需要是
有意义

罗伯特·C·马丁

Code Smell  - Non-Imperative Functions Names

软件工程精彩名言

马克西·孔蒂耶里 ・ 2020 年 12 月 28 日

#codenewbie #编程 #引号 #软件

本文是 CodeSmell 系列的一部分。

Code Smell  - Non-Imperative Functions Names

如何查找代码中的臭部分

马克西·孔蒂耶里 ・ 21 年 5 月 21 日

#codenewbie #教程 #代码质量 #初学者

以上是代码异味 - 非命令式函数名称的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板