——刘梓轩
本周我读的书是作者Dustin Boswell与Trevor Foucher所著的《the Art of Readable Code》。这本书很薄,思路也很清晰,看的过程可谓轻松加愉快。正如作者所说“这本书是一本关于如何编写具有高可读性代码的书”,代码应该写的容易理解是读完本书后得到的最大的体会。
在以前读的书中,有不少作者提到了关于代码编写的小技巧,有关于代码整洁的方法。有时候我也会想,为什么代码就应该像他们说的那样写,有什么理由吗?同时到真正我自己动手写代码的时候,总是会很纠结,这段代码究竟应该怎么写好?而读了这本书,作者从理论层面解答了我的困惑原来,可读性 == 可测试性 == 代码质量 == 代码优雅 == ……
他们之间其实是等价的。从这本书来说,或者说从可读性的角度来说,增强可读性的终极目标只有一个:降低他人理解这段代码所需的时间。这句话可以说是每一个程序员都应该追求的highest target, 更是我们在日产的工作中的最高指导思想。若是看透了这一点,那么其实也就不需要再去费劲地一个又一个地去了解等式里的每一项都是在说什么。
具体到问题中来,作者给了我们好几个很好的指导,代码中的变量名和格式可以帮助我们发现bug,用自然语言描述代码也能帮助我们发现bug,提高可读性可以封装代码提高可测试性,提高可读性可以重构代码使之变得更加清晰。可读性和可靠代码的其他优良品质有着千丝万缕的联系。这些小技巧可以说非常有用,我觉得在这样的思考方式下我们会逐渐发掘更多类似的提升可读性的技巧。
关于本书的一些细节部分的笔记:
一开头,讲到关于取变量名的细节时,把细节装到名字里,讲到了避免tmp这个泛泛的名字。我不禁老脸一红,有时候确实想不出名字怎么取的时候总是把tmp拿出来凑数,作者专门把它拿出来想必是这个名字使用量还不少吧。作者的建议是tmp这个名字只应用于短期纯在且为临时性存在的变量上。
后面再关于简化循环和逻辑的章节,对于if、else模块我们可以自由地调整其位置,从理论上来说没有任何问题,但是我们有理由相信,有一种顺序要相对好一些,比如:
首先处理正逻辑而不是负逻辑、先处理简单的而不是复杂的、先处理可疑的情况等等;或许对我们的编程很有帮助。