1、名副其实
见名知义,如下看到第一个完全不知道啥意思,看到第二个不需要任何解释就知道这个是表示什么含义
d
daysSinceCreation
2、避免误导
命名与实际含义一致,如下,看到第一个无论如何也想不出它是表示账号的含义,而第二个则与实际含义一致
accountList
account
3、做有意义的区分
命名不要出现多个命名类似,让人无法区分的情况,如下两个,产品数据,产品信息,这两个让人无法区分到底有啥区别,至少从字面上无法区分
productData
productInfo
4、使用读得出来的名称
命名具有可读性,不要用一些奇怪的或者将多个简写字母拼在一起,如下,很明显第二个可以直接读出来,而且读出来就知道表示什么含义了,第一个则相反
modymdhms
modificationTimestamp
5、使用可搜索的名字
在代码中使用较多的应使用便于搜索的长点的名称,当然如果只使用一两次的,使用短的命名倒也无所谓,如下,在代码中WORK_DAYS_PER_WEEK明显比数字5要更容易的搜索
const int WORK_DAYS_PER_WEEK=5
6、避免使用编码
说白了就是没必要在命名加一些类型、作用域、前缀等修饰型的描述,多余,如下,不论是前缀i还是int类型修饰符,都是很多余的,age就足够了
i_age
intAge
7、避免思维映射
比如常用i,j,k表示循环计数器,就推出继续使用l也表示循环计数器,或者常用a,b 就推出继续用c
8、类名
类型和对象名应该是名词或者名词短语,避免使用动词
9、方法名
方法名应该是动词或者动词短语,属性的访问、修改和断言应加上get、set和is前缀
10、别扮可爱
尽量避免使用使用俗语、俚语、比喻句等类型,言到意到,意到言到
11、每个概念对应一个词
给每个抽象概念选一个词,并一以贯之,常见的错误用法是比如获取操作一会用get,一会用retrieve,一会又用fetch,一以贯之的含义就是比如对获取,我可以在所有场合下的获取操作都是用get
12、别用双关语
双关语的含义就是同一个单词用于了不同的概念,比如add在某些场合用于加法或者字符拼接,而在某些场合却又用来将一个元素存放到数组,这明显add一个单词存在多种不同的含义了
13、使用解决方案领域名称
通俗点说就是命名尽量用技术性的名称。尽量使用计算机科学术语、算法名、模式名、数学术语等
14、使用源自所涉问题领域的名称
此原则是如果做不到原则13,即做不到采用技术性命名,那就退而求其次,采用领域问题的命名吧
15、添加有意义的语境
此原则是未了可读性,可适当增加一些有语意的语境的前缀,与原则6看似矛盾,实则同一,如果没有意义的前缀依然是不建议加的
16、不要添加没用的语境
没意义的语境添加就没有意义了







































苏公安网备 32011402010933号