7、代码命名规范

本文讲述了代码命名的重要性,提供了关于类名、变量名、方法名的命名建议,强调了一致性、上下文相关性和避免干扰词。此外,还提到了如何根据代码的作用域和复杂性选择合适的命名长度,并提倡使用领域相关的术语来提高代码可读性。
摘要由CSDN通过智能技术生成

1、能够表达意图:告诉我们它要做什么,为什么存在,以及是如何工作的

2、良好的命名的确需要花费时间,但是从长远来看,利大于弊。

3、避免在名字中出现干扰词:比如ManagerProcessorDataInfo以及“我不知道这叫什么”的同义词,都是干扰词。如果你需要使用上面这些干扰词的话,那么说明你的命名可能太累赘了

4、应该利用IDE,不断去重构、改进名字。

5、类名:应该有个名词或名词词组的名字,如CustomerWikiPageAccountAddressParser。继承性父类应该给个又短又有冲击力的名字。子类的名字应该长点,通过形容词来描述其不同于它的父类之处,如SavingsAccount衍生于Account。

6、变量名:变量名也应该是名词。它们大多是由其指向的类衍生出去的。布尔变量应写成谓词的形式,如isEmptyisTerminated,这样放到if语句才便于理解。

7、方法名:方法名应该是一个动词或动词词组,如postPayment()deletePage()save()。访问器和调整器应该分别前缀get和set。返回布尔值的方法应该前缀‘is’,如isPostable(),这样在if语句中才便于理解。

8、范围大小与变量名的长度:变量名的长度应和它的范围大小相匹配。如果变量的范围很短,那么变量名的长度也应该很短。反之,变量名则应该长一点,更有描述性。

9、范围大小与方法/类名的长度:对于方法和类名的长度则应该与其范围成反比。对于公共方法,短一点的名字会比较好,这是因为它们会被调用多次。私有方法只在类的范围内被调用,长一点的名字反而可以作为文档使用。此条规则的例外是派生类的名字。类越派生,基类前所加的形容词就越多,名字也就越长。

10、一个概念一个词:为某个抽象概念选定一个词,然后就不要变了。例如作为不同类中的等效方法,get()fetch()retrieve()会让人混淆起来。保持一致的词汇是程序员驾驭代码的重要工具。

11、不要将同一个词用于两个不同的概念:例如,我们可以在多个类中使用add()方法,通过添加或连接两个现有的值来创建一个新的值。如果我们之后又需要在类中引入一个add方法用于添加参数到集合中,这就会因为语义不同而导致问题。这种新方法最好是改叫为insert()

12、使用解决方案领域的名字:我们编写的代码今后可能会有其他程序员来阅读,所以我们使用一些技术术语进行代码命名会带来很大的好处。比如适当地使用算法名字、设计模式名字以及数学术语,这些命名方式很可能会让其他程序员更容易理解程序,引起共鸣。

13、使用问题领域的名字:如果实在找不到易于理解的技术术语来命名,那么也可以从问题领域来寻找合适的代码命名。当未来阅读你代码的程序员不确定代码意义的时候,这将为他们提供一些问题的线索。

14、添加有意义的语境:大多数名字其本身是没有意义的,需要放到语境(类/函数/命名空间)中,才能让阅读代码的人理解它们指代的是什么。在某些情况下,可能需要前缀名称以补充语境。例如,假设我们有一些用来表示地址的变量:firstNamelastNamestreethouseNumbercitystatezip。如果只看state这个变量,我们是很难推断出它指的是什么意思,一个比较好的解决办法就是将这些变量封装到Address类中

15、不要添加没来由的语境。

16、难以命名的类/功能:

  • 代码做得太多。

  • 代码做得还不够。

  • 你对此问题理解得还不够透彻,需要先获取更多的信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值