命名规范学习笔记

::: hljs-center # 开发规范 ::: ## 前言: 一个老人一辈子就在一个地方,他说话用了一辈子方言,不知道什么是普通话。但是他能听懂普通话可是他不会说。为什么这个老人能听懂普通话呢?因为普通话就是一个规范,所有的发音一样,说法一样,所以能清晰易懂不需要指手画脚半天的方言对方言。如果你说你的方言我说我的方言,和两个人见面就用普通话,那种办事效率高?其实代码也是一种语言,以往的开发方式团队之间没有命名规范。也没有一个统一的命名方式。起码个人经历过的团队命名几乎都是每个程序员自己的开发命名习惯来命名的。每个人也确实有自己的一套规范(地方方言),但是现在我们就要将每个人的方言转换成普通话(开发规范)。 ## ### 1、命名规范 <1>命名的关键是能准确达意。对于不同作用域的命名,我们可以适当地选择不同的长度。 <2>我们可以借助类的信息来简化属性、函数的命名,利用函数的信息来简化函数参数的命名。 <3>命名要可读、可搜索。不要使用生僻的、不好读的英文单词来命名。命名要符合项目的统一规范,也不要用些反直觉的命名。 <4>接口有两种命名方式:一种是在接口中带前缀“I”;另一种是在接口的实现类中带后缀“Impl”。对于抽象类的命名,也有两种方式,一种是带上前缀“Abstract”,一种是不带前缀。这两种命名方式都可以,关键是要在项目中统一。 ## ### 2、注释 <1>注释的内容主要包含这样三个方面:做什么、为什么、怎么做。对于一些复杂的类和接口,我们可能还需要写明“如何用”。 <2>类和函数一定要写注释,而且要写得尽可能全面详细。函数内部的注释要相对少一些,一般都是靠好的命名、提炼函数、解释性变量、总结性注释来提高代码可读性。 ## ### 3、 关于代码风格 <1>函数、类多大才合适?函数的代码行数不要超过一屏幕的大小,比如 50 行。类的大小限制比较难确定。 <2>一行代码多长最合适?最好不要超过 IDE 的显示宽度。当然,也不能太小,否则会导致很多稍微长点的语句被折成两行,也会影响到代码的整洁,不利于阅读。 <3>善用空行分割单元块。对于比较长的函数,为了让逻辑更加清晰,可以使用空行来分割各个代码块。 <4>四格缩进还是两格缩进?我个人比较推荐使用两格缩进,这样可以节省空间,尤其是在代码嵌套层次比较深的情况下。不管是用两格缩进还是四格缩进,一定不要用 tab 键缩进。 <5>大括号是否要另起一行?将大括号放到跟上一条语句同一行,可以节省代码行数。但是将大括号另起新的一行的方式,左右括号可以垂直对齐,哪些代码属于哪一个代码块,更加一目了然。 <6>类中成员怎么排列?在 Google Java 编程规范中,依赖类按照字母序从小到大排列。类中先写成员变量后写函数。成员变量之间或函数之间,先写静态成员变量或函数,后写普通变量或函数,并且按照作用域大小依次排列。 ## ### 4、 关于编码技巧 <1>将复杂的逻辑提炼拆分成函数和类。 <2>通过拆分成多个函数或将参数封装为对象的方式,来处理参数过多的情况。 <3>函数中不要使用参数来做代码执行逻辑的控制。 <4>函数设计要职责单一。 <5>移除过深的嵌套层次,方法包括:去掉多余的 if 或 else 语句,使用 continue、break、return 关键字提前退出嵌套,调整执行顺序来减少嵌套,将部分嵌套逻辑抽象成函数。 <6>用字面常量取代魔法数。 <7>用解释性变量来解释复杂表达式,以此提高代码可读性。