什么是 Clean ABAP 命令规范里提到的 Noise Words

笔者之前的文章,提到了 Clean ABAP 编程规范。

https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md

Clean ABAP 规范里提到了一个准则:给类或者变量命令时,避免使用 data,info,object 这些 Noise Words(干扰词).


1.png

命名规范里举了一些例子:

  • 使用 account 而不是 account_data

  • 使用 alert 而不是 alert_object

  • 使用 user_preferences 而不是 user_info

  • 使用 response_time_in_seconds 而不是 response_time_variable

Noise words 通常是那些在变量名中不增加任何有价值信息的词语。它们常见于开发者在试图让变量名听起来更"正式"或者"复杂"时添加的额外词汇。

然而,这些词语除了增加了代码的冗长性之外,并没有实际帮助理解变量的用途或意义。

常见的 noise words 包括 data, info, flag, temp, object 等。

这些词语之所以被称为 noise words,是因为它们没有为变量名添加任何明确的语义。如果一个变量名中的这些词语被去掉,而变量名仍然能够传达其核心意义,那么这些词就是多余的。

真实世界的例子

在理解 noise words 这一概念时,通过一些具体的例子来分析其影响可以更加直观。

案例 1:datainfo


String userData;

String userInfo;

在这个例子中,userDatauserInfo 看起来似乎是有意义的变量名,但它们实际上是含糊不清的。这些变量名并没有明确地传达出它们具体包含的信息是什么。假设 userData 包含的是用户的详细信息,而 userInfo 包含的是用户的基本信息,那么更好的命名方式可以是:


String userDetails;

String userBasicInfo;

这里,userDetailsuserBasicInfo 更加明确地表达了它们各自的内容,从而减少了开发人员在阅读代码时的认知负担。

案例 2:temp


tempValue = calculateTemperature();

tempValue 是一个常见的 noise word,因为 temp 这个词本身可以有多种含义,比如温度、临时值等。通过上下文可能可以理解这个变量是用于存储温度,但更好的命名方式是直接使用 temperature 作为变量名:


temperature = calculateTemperature();

这个例子中,去掉了 temp 这个词,使得变量名更加明确直接。

案例 3:object


CustomerObject customerObject = new CustomerObject();

在这个例子中,CustomerObject 这个变量名和类名都包含了 object 这个 noise word。实际上,object 并没有为变量名增加任何新的信息。更好的做法是简化变量名为:


Customer customer = new Customer();

这样,变量名更加简洁易懂,并且 Customer 这个词本身已经足够清晰地表明了其类型和用途。

规避 Noise Words 的实践

为了避免在代码中引入 noise words,开发人员可以采用以下几种策略:

1. 简洁明了:

变量名应当简洁明了,直接表达变量的用途。应尽量使用描述性强且不含糊的词汇。例如,与其使用 data,不如直接使用 details, count, list 等更具描述性的词汇。

2. 审视上下文:

变量名应当考虑上下文。例如,如果在一个处理客户数据的函数中,customerDetails 这个变量名可能是冗余的,因为函数本身的上下文已经明确了这些数据是关于客户的。在这种情况下,可以简单地将变量名命名为 details

3. 避免重复信息:

如果变量名已经传达了足够的信息,就不需要再添加额外的词汇。例如,在一个用户类的实例化变量中,不需要再使用 userObject 这种命名方式,user 或者 customer 已经足够表达其含义。

4. 团队命名规范:

建立团队级别的命名规范,可以帮助开发团队避免 noise words 的使用。这种规范应当明确哪些词汇是不必要的,并提倡使用哪些词汇来替代。

5. 代码审查:

在代码审查过程中,可以专门关注变量命名问题,确保没有 noise words 被引入。通过这种方式,团队可以共同维护代码的整洁性和可读性。

结论

Noise words 在变量命名中虽然看似无关紧要,但实际上会对代码的可读性和可维护性产生深远的影响。通过剔除这些冗余词汇,开发人员可以编写出更加简洁、清晰和易于理解的代码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容