整洁代码
代码永存
勒布朗法则:稍后等于永不。
整洁的代码只做一件事。
写出整洁代码的方法:减少重复代码、提高表达力、提早构建简单抽象。
有意义的命名
取一个好名字的几条简单规则:
- 名副其实 严肃对待变量、函数或类的名称,力争让人一眼就能看明白。
- 避免误导 避免留下掩藏代码本意的错误线索,避免使用与本意相悖的词。最突出的例子就是小写字母 I 和大写字母 O 作为变量名。
- 有意义的区分 不能添加无谓的数字系列或是废话。
- 使用读得出来的名称/使用可搜索的名称
- 类名和对象名应该是名词或者名词短语。
- 方法名应当是动词或者动词短语 重载构造器时,使用静态工厂方法
取好名字最难的地方在于需要良好的描述技巧和共有文化背景。
函数
写出一个好的函数方法需要遵循相关的规则:
短小还要更短小 理想状态下每一个函数都只有两行、三行或四行,每个函数都一目了然,每个函数都只说一件事,每个函数都依次把你带到下一个函数,这就是函数应该达到的短小程度。
只做一件事 判断一个函数是否只做了一件事,最直接的方法就是看它是否能够再拆一个函数。
一个函数就是一个抽象层级
自顶向下读代码:向下规则
每一个函数后面都跟着位于下一抽象层级的函数,在查看函数表时,就能遵循抽象层级向下阅读。
使用描述性的名称
- 如果每个例程都让你感到深合已意,那就是整洁代码
- 别害怕长名称。
- 选择描述性的名称能理清你关于模块的设计思路,并帮你改进
- 命名方式要一致,使用与模块名一脉相承的短语
函数参数
- 一元参数
- 传入一元参数有两个理由:处理关于这个参数的名字,操作该参数。
- 标识参数 针对传入布尔值的函数,我们可以将它们分开,分别调用各自的方法。
- 二元参数 、三元参数
- 参数对象 如果参数过多,我们可以考虑将参数封装程一个类,从参数创建对象,从而减少参数数量
- 一元参数
使用异常代替返回错误码
- 抽离
Try/Catch
代码块 - 错误处理就是一件事
- 抽离
别重复自己 减少一切重复代码
最后,总结一下,相应的方法:分解函数、修改名称、消除重复。