接着去年11月份实习时用 kindle 读到 20% 落下的好书,中间隔了几个月...
这本新书的名字也是“The Art of xxx”,很容易让我感觉到这是很严谨不易读的书,那本 TAOCP 是我这种数学能力超弱的人读不了的,而 TAOUP 对几乎没怎么用过 Unix/Linux 的我也比较难理解甚至不知所云。但是这本 Readable Code 却明显不像我先入为主的感觉那般,而是跟其书中让 code 更 readable 一样易读。
这本书容易读是因为作者几乎不用隐喻(Metaphor),也没有那些 DRY 原则(我看全书只是一笔带过一次而已)之类的缩写“术语”,而是用直白浅显的文字表达出来,简单明了。如果这些很适合新手阅读并注意的主题,隐喻过多显然达不到最主要的目的,但本书避免了这种问题,这是本书做得很好的一点。
另外,书中每一章至少有一幅跟主题相关的幽默漫画,在诙谐的同时引起你继续读下去的兴趣,还可能让你更能记住书中提到的那些“KEY IDEA”或具有指导/总结性质的章节名。英文单词也够简单,用 kindle 查一下足够了。
书中不仅用很多代码片段来说明问题,在最后第四部分的“Selected Topics”用比较完整的例子渐进式地讲了“Testing and Readability”和实现一个作者实际的产品代码“minute/hour counter”,后者涉及代码性能和内存消耗,看看作者怎么把整本书的主要方法运用到实践当中去。
我读过的与这本书类似的有《代码大全2》(大部头,面面俱到)和《重构》(这本 Refactoring 也比较好读,不过感觉偏向于“设计”,甚至是设计模式,性能、注释这些印象中没提到)。作者在最后推荐的阅读的书单中也包含了这两本,还有其他经典书。
几处自己觉得有趣的地方:
- 三目条件运算符 ?: 只能用于最简单的情况跟《代码大全 第二版》(Code Complete)一样提倡函数中尽早返回(return),但这里提到其他需要单退出点(single exit point)的情况(例如一些清理工作),已经被析构函数和 try finally 或 Python 的 with、C# 的 using 取代了。
- 别轻易一票否决臭名昭著的 goto,需要仔细研究它,有时候还是有用的,例如 Linux 内核就用到了。
- 代码里多重嵌套时,读代码的人不简单啊,因为要构造一个“mental stack”,然后看到 } 要记得按序“pop”出“mental stack”。觉得这个新词“mental stack”很有意思。
以作者一句话来结束:“Our book is intended to be a fun, casual read.”
p.s. 现在才知道“a.k.a.”是“also known as”的缩写,少读英文资料的悲剧啊,是程序员的从这本易读有用的书开始读原版书,一点点攒起来吧。
实在、好读、漫画幽默的小书
对“实在、好读、漫画幽默的小书”的回应
《编写可读代码的艺术》热门书评
-
代码为什么需要可读?
19有用 0无用 mftian 2012-10-01
有一次在code review的时候,一个应届毕业生问我,代码为什么需要可读性。我和他讲代码的美感和优雅、可维护性、可测试性,他却说那有什么用,只要能跑起来,能够实现功能,不就是好代码么?我不能否认这一点,但只能实现功能的代码绝对称不上好代码,就像没杀过人的人就是好人,你觉得对么?也有人和我争论说,...
-
实在、好读、漫画幽默的小书
7有用 1无用 蚂蚁 2012-03-19
接着去年11月份实习时用 kindle 读到 20% 落下的好书,中间隔了几个月...这本新书的名字也是“The Art of xxx”,很容易让我感觉到这是很严谨不易读的书,那本 TAOCP 是我这种数学能力超弱的人读不了的,而 TAOUP 对几乎没怎么用过 Unix/Linux 的我也比较难理解...
-
低成本编程
4有用 0无用 想太多... 2012-10-15
软件开发除了要能达到目标,还要尽量减少成本。怎样减少成本?这里抛开人员分配,任务安排等项目管理方面的不管,有哪些呢?除了明确准确的需求(减少无效编程),良好的设计(更巧的达到目标 less makes more)外,我想就是编码质量。编码的成本分开发成本与维护成本,后者成本又是远高。 &n...
-
这是一本被低估了价值的书
3有用 1无用 才克服死机 2012-07-19
“这是一本被低估了其价值的书”,一位朋友在向我推荐这本书时向我如是说。听到这样的评价,笔者在拿到书后立即开始兴奋地阅读,但因为一些琐事,本打算一周内看完写书评的,结果又拖了两天。总体来讲,确实受益匪浅,物超所值,很受用。作为一名程序员,当看别人的代码时,总希望清晰易读,所以自己写代码时,也希望有这种...
-
短小精悍,受益匪浅
3有用 1无用 Nina 2012-07-16
这本书短小精悍,引人入胜。译文流畅,在阅读过程中没有障碍。 译版不过170多页,分成了15个章节,易于查阅。还别具匠心地在适宜处插入漫画。即使是阅读文字耐心不足的人,也能以轻松愉快的心情读完本书。 本书的确是浓缩的精华。...