清晰的函数命名:避免歧义,提升代码可读性
简而言之:含糊不清的函数名会隐藏其功能,令读者困惑。请使用具有描述性、面向动作的名称。
问题
函数用途不明确认知负担增加上下文误导可读性降低协作困难功能隐藏
解决方案
使用面向动作的动词使用描述性名称反映函数目的避免通用术语提供有意义的上下文明确表达单一职责使动作与结果匹配
重构示例

重构 005 – 使用函数名代替注释
马克西·孔蒂耶里 2022年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] 手动检查
您可以通过检查函数名中是否存在模糊术语(例如 do、run、process、load 等)来检测此问题。 自动代码检查工具可以标记这些模式或突出显示名称过于通用的函数。
相关概念
命名
难度等级
[x] 初学者
为什么一一对应很重要
函数名与其功能之间应存在清晰的一一对应关系。 破坏这种对应关系会迫使开发人员检查代码细节以理解上下文,从而降低调试、代码审查和扩展的速度。
NameGPT名称生成器
免费AI公司名称生成器,AI在线生成企业名称,注册公司名称起名大全。
0 查看详情
人工智能方面
人工智能工具有时会在不理解领域知识的情况下生成通用的函数名。 使用 AI 时,务必指定函数名要具有描述性且面向动作。
人工智能检测
人工智能模型可以通过将函数签名与预定义的命名最佳实践进行比较来帮助检测不明确的名称。 将人工智能与人工代码审查相结合可以获得最佳效果。
动手实践!
记住:人工智能助手也会出错
ChatGPTChatGPTClaudeClaudePerplexityPerplexityCopilotCopilotGeminiGemini
结论
函数名不仅仅是标签;它们是与读者之间的约定。 不明确的名称会破坏此约定并导致混乱。 描述性且面向动作的名称简化了沟通,并使代码更易于维护和扩展。
相关链接

代码气味 33 – 缩写马克西·孔蒂耶里 2020年11月24日标签:#哎呀 #codenewbie #编程 #教程
代码气味 153 – 名称过长马克西·孔蒂耶里 2022年7月29日标签:#javascript #webdev #初学者 #编程
代码气味 38 – 抽象名称马克西·孔蒂耶里 2020年11月30日标签:#哎呀 #codenewbie #命名 #webdev
代码气味 174 – 属性中的类名马克西·孔蒂耶里 2022年10月29日标签:#javascript #webdev #初学者 #编程
名字到底是什么? — 第一部分:探索马克西·孔蒂耶里 2021年2月9日标签:#codenewbie #教程 #webdev #哎呀
名字到底是什么 – 第二部分康复马克西·孔蒂耶里 2021年5月23日标签:#教程 #codenewbie #编程 #webdev
免责声明
代码气味是我的观点。
制作人员
图片来自 Unsplash 上的 British Library
函数名应为动词或动词短语,且必须有意义。
罗伯特·C·马丁

软件工程精彩名言马克西·孔蒂耶里 2020年12月28日标签:#codenewbie #编程 #引号 #软件
本文是代码气味系列的一部分。

如何查找代码中的臭部分马克西·孔蒂耶里 2021年5月21日标签:#codenewbie #教程 #代码质量 #初学者
以上就是代码异味 – 非命令式函数名称的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/379173.html
微信扫一扫
支付宝扫一扫