什么是整洁代码?
经验丰富的程序员:
Bjarne Stroustrup: 我喜欢优雅和高效的代码,代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。
Grady Booch: 整洁的代码简单直接。整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直截了当的控制语句。
Dave Thomas: 整洁的代码应可由作者之外的开发者阅读和增补。它应有单元测试和验收测试。它使用有意义的命名。它只提供一种而非多种做一件事的途径。它只有尽量少的依赖关系,而且要明确地定义和提供清晰、尽量少的 API。代码应通过其字面表达含义,因为不同的语言导致并非所有必需信息均可通过代码自身清晰表达。
Michael Feathers: 我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的。整洁的代码总是看起来像是某位特别在意它的人写的,几乎没有改进的余地。代码作者什么都想到了,如果你企图改进它,总会回到原点,赞叹某人留给你的代码——全心投入的某人留下的代码。
什么样的代码算是整洁?
- 只做好一件事情
- 没有重复代码
- 代码逻辑直接了当,只包含必须的代码
- 尽可能少的依赖关系,便于维护
- 明确的定义,提供清晰的尽可能少的API
- 小块的代码块
- 好的表达力(体现在变量名,方法和类的抽象等)
- 完善错误处理代码(容易被忽略的细节)
- 一致性(架构设计,变量名,编码规范等)
- 赶上期限的唯一方法:始终尽可能保持代码整洁。
- 整洁的代码只做好一件事。
- 整本书的主旨,不要重复代码,只做一件事,表达力,小规模抽象。
- 要想干得快,要想快点做完,要想轻松写代码,先让代码易读吧。
- 让每次签入时,代码都比签出时干净。