最近,我阅读了《代码整洁之道》的中文版,觉得收获颇丰!在确保程序正确的前提下,让代码整洁可以提高工作的效率。
令我印象最深的就是有关“整洁代码”的定义。在我们学习和工作的时候,可以参照这些定义修改自己的代码,以便于阅读,同时方便成员之间的沟通和交流。
这些定义包括:
Bjarne Stroustrup(C++语言发明者):我喜欢优雅和高效的代码。代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省得引诱别人做没有规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。
Grady Booch:整洁的代码简单直接。整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直截了当的控制语句。
Dave Thomas:整洁的代码应可由作者之外的开发者阅读和增补。它应有单元测试和验收测试。它使用有意义的命名。它只提供一种而非多种做一件事的途径。它只有尽量少的依赖关系,并且要明确地定义和提供清晰、尽量少的API。代码应通过其表达含义,因为不同的语言导致并非所有必需信息均可通过代码自身清晰表达。
Michael Feathers:我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的。整洁的代码总是看起来像是某位特别在意它的人写的。几乎没有改进的余地。代码作者什么都想到了,如果你企图改进它,总会回到原点,赞叹某人留给你的代码—全心投入的某人留下的代码。
Ron Jeffries:简单代码,依其重要顺序:1)能通过所有测试;2)没有重复代码;3)体现系统中的全部设计理念;4)包括尽量少的实体,如类、方法、函数等。
各位大师对于“整洁代码”有自己的认识,那么你又是怎么看的呢?