讲师中心 微信公众号
AI工具推荐 视频效率加速

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

胖枫酱_4158

胖枫酱_4158

发布时间:2025-01-10 08:41:46

|

417人浏览过

|

来源于php中文网

原创

清晰的函数命名:避免歧义,提升代码可读性

简而言之:含糊不清的函数名会隐藏其功能,令读者困惑。请使用具有描述性、面向动作的名称。

问题

  • 函数用途不明确
  • 认知负担增加
  • 上下文误导
  • 可读性降低
  • 协作困难
  • 功能隐藏

解决方案

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

重构示例

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

重构 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] 初学者

为什么一一对应很重要

函数名与其功能之间应存在清晰的一一对应关系。 破坏这种对应关系会迫使开发人员检查代码细节以理解上下文,从而降低调试、代码审查和扩展的速度。

asclaude-monitor
asclaude-monitor

监控系统资源、管理计划任务、跟踪后台作业,并发送主动警报,以确保OpenClaw自动化工作流的稳定运行。

下载

人工智能方面

人工智能工具有时会在不理解领域知识的情况下生成通用的函数名。 使用 AI 时,务必指定函数名要具有描述性且面向动作。

人工智能检测

人工智能模型可以通过将函数签名与预定义的命名最佳实践进行比较来帮助检测不明确的名称。 将人工智能与人工代码审查相结合可以获得最佳效果。

动手实践!

记住:人工智能助手也会出错

无明确指令 有明确指令
ChatGPT ChatGPT
Claude Claude
Perplexity Perplexity
Copilot Copilot
Gemini Gemini

结论

函数名不仅仅是标签;它们是与读者之间的约定。 不明确的名称会破坏此约定并导致混乱。 描述性且面向动作的名称简化了沟通,并使代码更易于维护和扩展。

相关链接

相关链接图片

代码气味 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 #教程 #代码质量 #初学者

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

相关专题

更多
ChatGPT注册
ChatGPT注册

ChatGPT注册方法:1、访问OpenAI的官方网站,进入注册页面;2、完成注册后收到一份邮件,打开后点击验证账号;3、选择一个适合您需求的订阅计划;4、获得访问ChatGPT的权限即可。

2513

2023.09.12

国内免费ChatGPT大全
国内免费ChatGPT大全

ChatGPT是一种基于深度学习技术的自然语言处理模型,由OpenAI开发。它是GPT的一个变体,专门设计用于生成上下文相关的文本回复。ChatGPT被训练成一个聊天机器人,可以与用户进行对话交互。更多关于ChatGPT的文章详情请查看本专题,希望对大家能有所帮助。

6205

2023.10.25

手机安装chatgpt的方法
手机安装chatgpt的方法

手机安装chatgpt的方法:1、在ChatGTP官网或手机商店上下载ChatGTP软件;2、打开后在设置界面中,选择语言为中文;3、在对局界面中,选择人机对局并设置中文相谱;4、开始后在聊天窗口中输入指令,即可与软件进行交互。想了解更多chatgpt的相关内容,可以阅读本专题下面的文章。

9621

2024.03.05

chatgpt国内可不可以使用
chatgpt国内可不可以使用

chatgpt在国内可以使用,但不能注册,港澳也不行,用户想要注册的话,可以使用国外的手机号进行注册,注意注册过程中要将网络环境切换成国外ip。想了解更多chatgpt的相关内容,可以阅读本专题下面的文章。

3816

2024.03.05

chatgpt官网入口地址合集
chatgpt官网入口地址合集

本专题整合了chatgpt官网入口地址、使用教程等内容,阅读专题下面的文章了解更多详细内容。

1918

2026.03.16

chatgpt使用指南
chatgpt使用指南

本专题整合了chatgpt使用教程、新手使用说明等等相关内容,阅读专题下面的文章了解更多详细内容。

617

2026.03.16

ChatGPT编程开发实战教程
ChatGPT编程开发实战教程

本专题全面讲解ChatGPT在编程开发中的应用,包括代码生成、接口调试、Bug修复、前端页面开发、Python脚本编写及数据库优化等,帮助开发者提升效率。

280

2026.05.29

ChatGPT自媒体创作教程
ChatGPT自媒体创作教程

本专题聚焦ChatGPT在自媒体领域的应用,包括爆款标题生成、短视频脚本撰写、小红书文案优化、公众号排版及AI创意输出等内容,适合内容创作者与运营人员学习。

299

2026.05.29

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn