0

0

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

心靈之曲

心靈之曲

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

|

397人浏览过

|

来源于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] 手动检查

您可以通过检查函数名中是否存在模糊术语(例如 dorunprocessload 等)来检测此问题。 自动代码检查工具可以标记这些模式或突出显示名称过于通用的函数。

相关概念

  • 命名

难度等级

[x] 初学者

为什么一一对应很重要

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

VISBOOM
VISBOOM

AI虚拟试衣间,时尚照相馆。

下载

人工智能方面

人工智能工具有时会在不理解领域知识的情况下生成通用的函数名。 使用 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助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
ChatGPT注册
ChatGPT注册

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

537

2023.09.12

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

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

579

2023.10.25

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

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

2854

2024.03.05

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

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

1029

2024.03.05

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

109

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

16

2026.01.26

苹果官方查询网站 苹果手机正品激活查询入口
苹果官方查询网站 苹果手机正品激活查询入口

苹果官方查询网站主要通过 checkcoverage.apple.com/cn/zh/ 进行,可用于查询序列号(SN)对应的保修状态、激活日期及技术支持服务。此外,查找丢失设备请使用 iCloud.com/find,购买信息与物流可访问 Apple (中国大陆) 订单状态页面。

131

2026.01.26

npd人格什么意思 npd人格有什么特征
npd人格什么意思 npd人格有什么特征

NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

7

2026.01.26

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号