English

向大师学习美

2008-09-10 来源:中华读书报 作者:■潘加宇 我有话说
《代码之美》(BeautifulCode)BrianKernighan等33位作者著Beautifulcode翻译组译机械工业出版社2008年9月第一版定价:70.00元

我1989年参加高考时,总分120分的语文才考了71分,这最弱一环差点造成致命打

击。最害怕的是写作文,记得当年的题目是写一封信,在右江盆地高温的教室里,我写得汗都滴在试卷上。没想到,后来看的东西多了,“不会作诗也会吟”,居然也能接杂志和出版社的约稿,写一些文章和序言之类。

翻开《代码之美》第29章,Ruby之父Yukihiro Matsumoto(松本行弘)说:Treating Code As an Essay。写代码如同写文章一般,多看多研究大师的作品,才能够信手拈来,写出美丽的代码。

《代码之美》就是33位大师的集体美作。

这是一本特别的书,我们先从它的作者们讲起:

其英文封面上,作者项署名是“Edited by Andy Oram and Greg Wilson”。Edited?那作者呢?实际上,这本书有33位作者!现在你知道为什么封面上不列作者了吧?一来列不下,二来更重要的是每位作者都是一个领域里的大牛,怎么排列?每位作者都贡献了一章内容,所以本书共有33章。这种做法带来了三个重要的结果:

1.每位作者都是大牛,每个人都知道自己在说什么。

2.每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。

3.心理学上有一种说法叫做联合评估与单独评估,即如果你单独评估一样东西,是难以把握其好坏的,然而如果将它跟同类东西一比,就能够做出更准确的判断。33位大牛,每个人对代码之美都有自己独特的认识,现在一览无余地集合在一起,对于热爱程序的每个人都不啻一场盛宴。

这些大师们包括:Brian Kernighan,经典C语言书籍《C Programming Language》的作者,K&R C和AWK中的“K”,他在第1章介绍了正则表达式匹配器的优雅解决方案;Charles Petzold,影响一代Win32程序员的经典《Windows程序设计》作者,和大家探讨图像处理中的即时代码生成;Linux内核维护者GregKroah-Hartman,和大家一起欣赏Linux内核驱动模型的美丽代码;被《科学》杂志誉为人类基因组计划的幕后英雄的GigAssembler作者Jim Kent,介绍如何将简单的构件组合起来为基因研究人员生成稳定并且有价值的工具;曾参与NASA火星探测器项目的Ronald Mak,介绍如何使用工业标准、最佳实践和Java技术来满足NASA探险任务的高可靠性需求;XML作者Tim Bray向大家讲述“查找”;著名C++跨平台开源框架ACE的设计者Douglas C.Schmidt,介绍了节省劳动的架构:一个面向对象的网络化软件框架;当然,还有上面说的Ruby之父Yukihiro Matsumoto。

《代码之美》并不限于讨论某一种语言的技巧,你能看到大师们使用现在流行的Java、Ruby,也能看到历史悠久的Fortran。每位大师用优美、简洁以及精炼的语言将他们的心得淋漓尽致地诠释于一章之中,让我们从各种角度来体会代码之美。

笔者以前在编写代码的时候,总是精心地安排代码的布局,大括号的位置、转行空几个字符、注释是紧接在代码后边还是另起一行,等等。总觉得优美的布局即代表了――至少是在很大程度上代表了美丽代码。但随着对编程知识的不断学习,自己逐渐认识到,这种肤浅的认识所带来的不过是表面光鲜亮丽、实则外强中干的代码而已。真正美丽的代码是由内而外层层弥散开来的,是能在你仔细阅读、深入理解之后激起共鸣的代码。

美除带来欣赏,也能带来财富。因北京奥运的成功,博尔特的速度之美估计价值上千万美元。美丽的软件也一样。一些软件公司,公司人少且稳定,多年来专注于做某一个小领域里的软件,对软件的打磨可谓是精雕细琢,美丽软件带来的利润自然也很可观。比起那些靠低人力成本、低价格在市场上打拼的“程序员民工”公司,他们要活得滋润得多,安全得多。

《代码之美》,美在实处,美在深处。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有