Java中的一些编程规范
关于命名
命名的关键是能准确达意。对于不同作用域的命名,可以适当地选择不同的长度。
作用域小的变量(比如临时变量),可以适当地选择短一些的命名方式。除此之外,命
名中也可以使用一些耳熟能详的缩写。
一般可以借助类的信息来简化属性、函数的命名,利用函数的信息来简化函数参数的命
名。
命名要可读、可搜索。不要使用生僻的、不好读的英文单词来命名。除此之外,命名要
符合项目的统一规范,不要用些反直觉的命名。
接口有两种命名方式:一种是在接口中带前缀“I”;另一种是在接口的实现类中带后
缀“Impl”。对于抽象类的命名,也有两种方式,一种是带上前缀“Abstract”,一种
是不带前缀。这两种命名方式都可以,关键是要在项目中统一。
关于注释
注释的目的就是让代码更容易看懂。只要符合这个要求的内容,就可以将它写到注释
里。总结一下,注释的内容主要包含这样三个方面:做什么、为什么、怎么做。对于一
些复杂的类和接口,我们可能还需要写明“如何用”。
注释本身有一定的维护成本,所以并非越多越好。类和函数一定要写注释,而且要写得
尽可能全面、详细,而函数内部的注释要相对少一些,一般都是靠好的命名、提炼函
数、解释性变量、总结性注释来提高代码可读性。
函数、类多大才合适?
函数的代码行数不要超过一屏幕的大小,比如 50 行。类的大小限制比较难确定。
一行代码多长最合适?
最好不要超过 IDE 显示的宽度。当然,限制也不能太小,太小会导致很多稍微长点的语句
被折成两行,也会影响到代码的整洁,不利于阅读。
善用空行分割单元块
对于比较长的函数,为了让逻辑更加清晰,可以使用空行来分割各个代码块。在类内部,成
员变量与函数之间、静态成员变量与普通成员变量之间、函数之间,甚至成员变量之间,都
可以通过添加空行的方式,让不同模块的代码之间的界限更加明确。
四格缩进还是两格缩进?
一般要和原有的代码缩进格数保持一致。除此之外,值得强调的是,不管是用两格缩进还是四格缩进,在使用 tab 键进行缩进时要注意缩进格数,因为在不同的IDE,tab键的缩进格数是不一致的,当然IDE也提供了设置tab键的缩进格数来帮助我们解决此问题,所以到底使用空格还是tab可以根据个人习惯选择。
大括号是否要另起一行?
Java当然比较推荐将大括号放到跟上一条语句同一行的风格,这样可以节省代码行数。但是,将大括号另起一行,也有它的优势,那就是,左右括号可以垂直对齐,哪些代码属于哪一个代码块,更加一目了然。不过还是那句话,要与原有框架代码保持一致。
类中成员的排列顺序
在 Google Java 编程规范中,依赖类按照字母序从小到大排列。类中先写成员变量后写函
数。成员变量之间或函数之间,先写静态成员变量或函数,后写普通变量或函数,并且按照作用域大小依次排列。
关于编码技巧
将复杂的逻辑提炼拆分成函数和类。
通过拆分成多个函数或将参数封装为对象的方式,来处理参数过多的情况。
函数中不要使用参数来做代码执行逻辑的控制。
函数设计要职责单一。
移除过深的嵌套层次,方法包括:去掉多余的 if 或 else 语句,使用 continue、 break、return 关键字提前退出嵌套,调整执行顺序来减少嵌套,将部分嵌套逻辑抽象 成函数。
用字面常量取代魔法数。
用解释性变量来解释复杂表达式,以此提高代码可读性