会说话的代码:书写自表达代码之道
王洪亮
推荐序
经典的教人写程序的书,如《Java编程思想》,类似教材的定位,由浅入深地教会新程序员写代码。充满丰富经验的《Effective Java》、《设计模式》等书,将众多的编程经验进行组织并进行深入浅出的讲解。在《Clean Code》中也描述了许多如何写干净代码的技巧和经验。
而这本《会说话的代码》,却从截然不同的视角,尝试帮助那些真正处于一线的程序员写出更容易理解的代码。写代码就像盖楼房,我们怀着美好的希望,希望所有的项目代码如同一片尚未开垦的处女地,但真实情况往往是面对拆迁房的废墟。这些令人费解的代码要么是别人留下的,要么是自己许久之前留下的,而我们的往往选择不多。
《会说话的代码》从一线角度重新描述了这些现象,并极富关怀地提出了解决方案。例如,当需要滚动鼠标滚轮或者不断拉动滚动条时,你的方法或者类是不是过长?需要不断查看方法实现时,是不是方法名无法表达实现的含义?需要画流程图才能理解某个方法的逻辑时,是不是嵌套太深?
这本书从命名、注释、结构、架构、编程风格等方面,做出了具体的阐述。其中的某些建议甚至详细到了需要用is还是can,接口要加I还是用-able的后缀等。文中还阐述了设计模式和面向对象的设计原则如何帮助程序员写出自描述的代码,要想理解透彻,还需要阅读相关书籍。对于尚未正式发布的Java 8,作者在第11章也进行了Lambda的介绍。
另外,我认识王洪亮已久。十多年前,当程序员新兵们还在受谭浩强的《C程序设计》“折磨”时,尚在西北工业大学的王洪亮已经在宿舍里用C++写出令人眼馋的RPG游戏。现在,他依然没有放弃一线开发。作为程序员,我心生佩服。
希望本书能够帮助程序员们写出更为直观、简洁的代码。
ThoughtWorks敏捷咨询顾问
陈金洲(@mechiland)
2013年2月21日 前言——自表达代码的由来
我们曾经阅读过很多阅读体验很糟糕的代码…