关于命名规范的一些建议


类命名
Kent Beck 提出其中大多数的规则。Kent Beck 的《Smalltalk Best Practice Pattern》是我
至今为止读过的所有书里面最符合我审美观点的书籍—渊博的知识和春秋的笔法。


简单超类名—传达设计目的
命名总要受各种因素的影响。你想把名字取得尽量短,易于输入、格式化、容易说出口。
同时,你也想让名字尽可能包含更多的信息,这样读者就能够更快地理解名字所包含的实际
内容。你可能取一些尽量为人所熟悉的名字,这样在名字中就可以传递更多的共同经验。同
时,你也想让名字尽量唯一,别人的代码命名就不会和你重复。
Kent Beck 给出的第一个规则就是不要缩写。缩写对输入(20 年内10-100 次)的考虑
多余对理解(20 年内1000-10000 次)的考虑。理解缩写词需要两步,第一步理解这些缩写
代表的词语,第二步采取理解这些词语所代表的意义。
对一个大层次的根类命名是一个重大的决策。在未来的20 年中,人们可能不断地使用
你所给出的名字。你必须不犯错误。
人们通常在命名超类时加上各种各样的修饰,富有计算机科学意义、给人深刻印象但最
终却没有意义的单词,如Object,Thing,Component,Part,Manager,Entity 或Item。
你在创建一个词汇表,而不是写一个程序。暂时做一回诗人。简单、生气勃勃、容易记
忆远远比说出全部内容更有效。规则:
Name a superclass with a single word that conveys its purpose in the design。
(用一个单词命名超类,传达它的设计目的),好的例子包括:
Number 、Collection、Magnitude、Model


全称子类名—区分异同
命名类的一种方法是给一个唯一的名字。唯一的名字可以让你用用最短的信息表达最多
的信息。
这对于通用术语来说是对的。Array 是Collection 的一个子类,因为绝大多数人都知道
“Array“意味着什么。
但在绝大多数情况下,类继承的层次结构对于理解你的代码十分重要,特别是一个子类
概念上是超类的变种同时又和超类共享实现的情况。你需要传递两部分信息:
1.新类如何相同,以及
2.新类如何不同
要表达相同,你可以借用超类的名字。这不一定是一个直接的子类和父类关系,层次上
有一定距离也无妨。要表达不同,你需要一个单词确切地强调新类为什么不是超类的理由。
所以,有规则:
Name subclasses in your hierarchies by prepending on an adjective to the superclass
name。
(在超类名字前加上内容命名你层次中的子类。)
例子:
BigInteger 是一个可以表达很大很大数字的整数。

 

方法命名—揭示意图
为什么好的代码总有很多简单的方法,代码可能只有一行,譬如:
class ParagraphEditor。。。。
public void highlight(aRectangle:Rectangle){
reverse(aRectangle);
}
这个highlight 只是分派到reverse,为什么还需要?
关键在于Communication。因为有了这个方法,以后的代码就可以用highlight 来说话。
我要加亮一个区域,我就highlight 它。
你当然可以直接使用reverse,结果是一样的。但所有调用代码都揭示了实现—“我通
过反转一个矩形来加亮它“。
代码应当揭示意图,它另外的好处是可以更方便通过继承修整。如果你想要一个
ParagraphEditor 用颜色加亮,那么只需继承ParagraphEditor 并覆盖highlight 即可。所以:
communicate what is to be done rather than how it is to be done。
传达你要做什么(接口)而不是你如何做(实现)。

 

实例(临时)变量命名—暗示角色
任何实例变量传达的信息包括两部分:
1.什么是它的目的?
2.它如何被使用?
一个变量的目的或者说它担当的角色对读者非常重要,因为它能够正确地引导读者的注
意力。一般,你在阅读代码时脑袋里总有一个目的。如果你理解变量的角色,而这个角色和
你的目的无关,那么你可以直接跳过使用该变量的无关代码。如果发现该变量的角色和你的
目的有关,那么你就能马上缩小你的阅读范围—那些引用此变量的相关代码。
一个变量如何被使用和发送给它什么消息通常是它的“类型“。理解类型并非不重要。
但是,对于实例变量来说,你能够了解这个变量所担当角色的唯一地方就是它的名字。如果
一个Point 中有两个实例变量叫做int1、int2 而并非x、y,那么在你理解哪一个是横向坐标,
哪一个是纵向坐标前,你可能要都上一堆代码。更何况你还要阅读与之相关的很多代码。而
变量的类型很容易从它声明、传递给它的消息看出来。所以:
Name instance variable for the role they play in the computation。Make the name plural
if the variable will hold a Collection。
(用计算中实例变量所承担的角色对它命名。如果变量持有一个集合,使用复数。)

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Autosar是一个汽车行业标准化组织,致力于汽车电子系统的开发和标准化。Autosar命名规范是Autosar标准中一个非常重要的命名约定,它保证了同一份代码在不同的地方都能被准确地理解和使用。 Autosar命名规范主要涵盖以下几个方面: 1.文件和目录命名规范:遵循ISO9660命名规则,使用小写字母和数字,用下划线连接单词。 2.函数和变量命名规范:使用驼峰式命名法,遵循AUTOSAR C++14核心语言规范,使变量名和函数名具有表意性。 3.宏定义命名规范:遵循大写字母和下划线命名法,保证宏定义唯一性。 4.枚举类型命名规范:使用首字母大写和驼峰式命名法,与其他类型区分开来。 5.结构体和联合体命名规范:使用首字母大写和驼峰式命名法,保证结构体和联合体名称具有表意性。 6.常量命名规范:使用大写字母和下划线命名法,多单词常量用下划线连接。 7.函数参数命名规范:使用小写字母和下划线命名法,给函数参数一个清晰的名称。 这些规范为代码的可读性和可维护性提供了帮助,并且有助于开发人员编写更易于阅读和理解的代码。在Autosar开发中,遵循这些命名规范有助于保持一致性和标准化,从而提高了代码的质量和可重用性。 ### 回答2: AUTOSAR是一种业界标准,涉及到驾驶员辅助系统和汽车电子系统的开发。AUTOSAR命名规范要求所有的标签,函数、变量和文件名都遵循一定的命名规则。这有助于增强代码的可读性和可维护性,提高系统稳定性。AUTOSAR命名规范始于一个前缀,以区分不同的层级。这些前缀标识是P、R、I、O、N和B。P表示平台级,R表示运行时软件层级,I表示基础软件层级,O表示操作系统层级,N表示网络、通信层级,B表示决策支持和业务逻辑层级。在这些前缀标识之后,应该使用描述性的单词或短语,以提高命名的可读性和理解性。对于常量和枚举,应该用大写字母分隔单词。对于函数和变量,应使用驼峰式命名法,其中第一个单词小写,其余单词首字母大写。文件名应该使用小写字母,用下划线分隔单词。AUTOSAR命名规范还包括许多其他指南和建议,例如使用易于理解的名称,避免使用缩写,避免使用关键字作为名称等等。遵循AUTOSAR命名规范可以提高代码的质量,降低开发成本和风险,提高整个系统的可维护性。 ### 回答3: AUTOSAR是一种面向汽车电子系统的标准化软件架构。在这个架构中,命名规范是非常重要的一部分,因为它有助于保持软件的一致性和可读性以及简化软件开发和维护。以下是AUTOSAR命名规范的一些重要方面。 1.模块命名规范:模块的名称应该是简洁明了的,通常采用大写字母和下划线的结合,例如“COM_COMSTACK”和“MCAL_PSW”等等。 2.接口命名规范:接口的名称应该清晰易懂,并且能够反映其功能和特点。通常采用大写字母和下划线的结合,例如“CANIF_TX_CONFIRMATION”和“DIO_CHANNEL_GROUP_TYPE”等等。 3.数据类型命名规范:数据类型应该具有描述性质,以反映其目的和用途。通常采用大写字母和下划线的结合,例如“Dio_LevelType”和“Com_TrueFalseType”等等。 4.变量命名规范:变量名称应该是描述性的,并且能够反映其类型和作用。通常采用驼峰命名法,例如“portChannel”和“comStackData”等等。 5.枚举命名规范:枚举类型应该具有描述性质,以反映其目的和用途。通常采用大写字母和下划线的结合,例如“Dio_PortLevelType”和“Com_TransmissionModeType”等等。 总之,AUTOSAR命名规范旨在提高软件的可读性和一致性,并简化软件开发和维护。通过遵守这些规范,汽车电子系统的开发人员可以更轻松地查找、修改和扩展代码,并实现更高效的编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gigix

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值