chapter1: 命名
变量名:变量名应该是名次,能够正确的表述业务,有表达力。如果一个变量名需要注释来补充说明,那么这个命名是有问题的。
函数名:函数命名要具体,空泛的命名没有意义。比如,processData()就不是一个好的命名,因为并没有表明要做的事情。相比之下,validateUserCredentials()就好很多。函数命名要体现做什么,而不是怎么做。比如要从栈中获取最近存储的一个雇员信息,那么getLastestEmployee()就比popRecord()要好。
类名:类是面向对象最重要的概念之一,是一组数据和操作的封装。对于一个应用系统,我们可以分为两大类:实体类和辅助类。实体类承载了核心业务数据和核心业务逻辑,其命名要充分体现业务语义,并在团队内达成共识。如customr,bank。辅助类是辅佐实体类一起完成业务逻辑的,其命名要能够通过后缀来体现功能。
包名:包的命名要适中,不能太抽象,也不能太具体。
保持命名的可读性和一致性。
每个概念一个词。
遵守对仗词的命名规则有助于保持一致性,从而提高代码的可读性。
后置限定词:很多程序中会有表示计算结果的变量,例如Total,Sum,Average,Max,Min。如果要用这些定词来修改某个命名,那么记得把限定词加在名字的最后,并且贯彻执行,保持命名风格的一致性。
好的代码是最好的文档。
通过添加中间变量让代码变得更加自明。即将计算过程打散成多个步骤,并用有意义的变量名来命名中间变量,从而把隐藏的计算过程以显性化的方式表达出来。
注释的作用不是复述代码的功能,而是解释代码背后的原因。
Chapter2: 规范
Java的命名约定:
类名采用大驼峰形式,即首字母大写,如StringBuffer
方法名采用小驼峰形式,即首字母小写的动词形式
常量命名的字母全大写,单词之间用下划线链接
Chapter3: 函数
函数:函数是一组代码的集合,是程序中最小的功能模块,一次函数调用包括接收参数输入,数据处理,返回结果。
函数:单一职责原则SRP。遵守SRP不仅可以提升代码的可读性,还能提升代码的可复用性。