当前: 首页 - 华章资讯 - 编写可读代码的艺术

编写可读代码的艺术

2012年12月20日
[字号: ] [字色:默认 绿]

作者:Juven Xu,原文网址:http://www.juvenxu.com/2012/10/21/the-art-of-readable-code/

在我们刚开始学习编程时,老师会教我们使用正确的语法、合理的数据结构、高效的算法。而这里的“正确”、“合理”及“高效”,基本都是从机器的角度来说的。但从一般人的角度来看,特别是对非专业人员来说,很多编程语言的语法以及大多数的数据结构和算法都是非常难以理解的。我们可以理直气壮地说“非程序员不需要理解这些东西”,可是我们有没有认真想过,我们编写的代码对于其他程序员来说真的很容易理解吗?

大多数的计算机教育基本只关心代码对于机器的友好性,而不关注代码对于人的友好性。如果代码写完就扔给机器运行,再也没人去阅读和修改,那就没什么问题。可现实情况是,代码会被他人阅读和修改成百上千次。这时,难以理解的代码会浪费程序员大量的时间。在我目前工作的项目中,存在着数百万行的遗留代码,这些代码中的绝大部分都非常难以阅读:变量不停地变换着名字、if语句嵌套个五六层、一个数百行的函数有着数不清的职责……当需要做改动时,程序员不得不花大量的精力去试图理解这些晦涩的代码,而且就算这样也会经常不小心踩到某个陷阱,这种情况非常影响程序员的士气。

因此,代码应该是易于理解的,这正是《编写可读代码的艺术》一书的主旨。使代码变得易于理解的方法多种多样,可以使用DSL(领域特定语言),可以合理使用设计模式,可以使用TDD(测试驱动开发)。相比之下,本书描述的方法看起来最为简单,简单到方法的命名、注释的编写、if/else语句的组织……不过这些看似简单的方法其实很不简单,因为这些细微的地方太难觉察了。

本书的一大特色就是用大量短小的代码说明问题而非长篇理论阐述,每个话题都相应地配有未考虑可读性的代码和考虑可读性的代码,非常便于对比和体会。你可能会认为即便考虑过可读性之后,代码看起来也没有发生太大的变化,无非就是一个变量的名字、一条注释的语言组织、几行语句的结构顺序,不足为道。但我认为这些细微的变化恰恰就是对“艺术”二字最好的诠释。精益求精地编写每一行代码,让他人在阅读时感到心情愉悦,积跬步以致千里,不正是每个程序员应该追求的职业态度吗?

本书在第14章有一个可能会有争议的地方,作者为了使单元测试用例的代码能够尽可能简洁地表达意图,而创建了几个包含很多逻辑的测试脚手架方法。也许有些人会觉得这样的牺牲是值得的,但有些人则觉得这是一种过度设计。这就仁者见仁,智者见智了。

本书每章都包含了许多有趣的漫画,所谓一图胜千言,这些漫画能让你在一笑之余更深刻地理解作者想要表达的意思。本书的封面也非常漂亮,对得起“艺术”二字。如果你希望写出可读性更好的代码,本书值得细细品味。

本文已经首发于《程序员》2012年7月刊,版权所有,如需转载,请务必附带本声明,谢谢。

相关图书
安全编程代码静态...
代码之道
完美代码
代码之美
编写可读代码的艺...


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才