代码整洁之道:程序员的职业素养
上QQ阅读APP看书,第一时间看更新

译者序2:负阴抱阳,知行合一

“师者,所以传道授业解惑也。”Robert C. Martin,软件开发社区中亲切地称他为Bob大叔,正是这样一位明师。

2003年,他的《敏捷软件开发:原则、模式与实践》(下称ASD)在国内上市。我那时进入软件开发行业刚刚一两年,这本书真可谓是及时雨。在精读全书和细心对照书中案例练习后,我感觉自己在面向对象设计方面的功力有了比较明显的提升。那时因工作环境所限,身边没有能够手把手给予技术辅导的导师,因此,那时在我心中Bob大叔无疑就是一盏指路明灯。后来在网上找到了不少Bob大叔的演讲PPT,沿着链接,又找到了Object Mentor公司其他一些软件开发专家的演讲PPT和博客,我如饥似渴地阅读揣摩。现在回头想来,正是在这个阶段我开始建立起“编程技艺”的视角。

时间过得很快,转眼就到了2010年,不觉中我已在软件开发的多个领域工作了近10年。2010年,Bob大叔的《代码整洁之道》一上市,我马上给自己和项目团队订了好几本。在为ASD所写的序中,Bob大叔写道:“最好的软件开发人员都知道一个秘密:美的东西比丑的东西创建起来更廉价,也更快捷。构建、维护一个美的软件系统所花费的时间、金钱都要少于丑的系统。……美的系统是灵活、易于理解的,构建、维护它们就是一种快乐。”如果说ASD中更多的是OO设计思想和模式精髓的阐述,那么在《代码整洁之道》中,Bob大叔提供了更为详尽的微距视角,涉及“命名”“函数”“代码格式”“异常处理”“单元测试”等编码主题,巨细靡遗地向软件工匠们极力传授整洁编码的艺术,进一步向软件开发社区慷慨分享了他在探索“软件之美”旅途中的参证心得。

但是,细心的读者可以发现,在前述两本书中Bob大叔阐述的主体还是软件编码技术本身,作为一门技艺而言,止步于具体技术或曰“术”的层面,应该还未算得完整。后来,在YouTube、SlideShare和Object Mentor等站点上,我看见Bob大叔有不少演讲趋向于聚焦在编程主体即软件开发者自身行为模式和特质层面上,就猜到他不久应该就会有此方面的新著推出。Bob大叔就是Bob大叔,在探索和分享软件技艺的路上,他内心怀有对软件开发社区发展责无旁贷的使命感。果不其然,他将这些体悟浓缩在又一本新著上,这本书便是读者手上的这本《代码整洁之道:程序员的职业素养》。

本书阐述的是Bob大叔关于软件技艺主体的沉思,这些沉思并非是纯粹形而上的思辨推演,而是他对自身编程生涯的深刻反思和经验沉淀。在这本书中,Bob大叔并非是以高人一等的凌人盛气(事实上,他应该有这样的资格)大行说教,而是毫不掩饰自己在职业生涯中曾犯下的各种错误和不堪往事,以这些案例为载体,现身说法,娓娓道来使自己得以转变和提升的种种“机锋”,并留有意味深长的空间,供读者自己结合自身状况进一步体悟提炼,而非给出硬邦邦的一堆结论。这是何等的胸怀、格局和智慧!

按照传统的太极阴阳思维来看,如果说ASD和《代码整洁之道》中的内容是硬性的、技术性的、显性的,故而可以归为“阳”的范畴,那么本书中的“专业主义”“技艺之道”便是软性的、哲学性的、隐性的,故而可以归为“阴”的范畴。“孤阴不生,独阳不长”,《老子》说“万物负阴而抱阳,充气以为和”。Bob大叔这三本书为何都选择星云图片作为封面呢?我忽有顿悟。

严肃地选择以软件开发为自身职业方向的软件工程师(我更喜欢称为“软件工匠”)们,如果你同我一样,此前感觉颇为受益于Bob大叔的谆谆教诲,那么请不要错过本书。将本书和ASD、《代码整洁之道》并列案头,三书互为参照,一并静心细读、揣摩体悟、时时对照、检验调整,做到负阴抱阳、知行合一,相信定能渐入佳境。

本书本该早日完成翻译面市,但因我个人方面的一些原因,翻译进度耽搁时日颇多,使我内心极为惴惴不安,这点必须向各位读者,尤其是Bob大叔的粉丝和在从事软件开发过程中遇到困顿境地的读者们,深深致歉!

感谢人民邮电出版社的各位编辑对我的信任、宽容和指导。我对人民邮电出版社在技术专著引入和传播事业上的孜孜以求与坚持不懈的精神十分敬佩!

感谢蔡煜兄(@larrycaiyu)对几章译稿的前期试读,并提出了不少改善的地方。(我在2010年上海ScrumGathering会议上结识蔡煜,此后从他的博客和微博上受益不小。)

感谢余晟兄作为审校者为本书付出的辛勤汗水,你的修订和润色使本书的正确性、可读性有了本质性的提升。如果没有你,我不知道自己是否有勇气将译稿交付出版。在进度滞后的情况下,你又慷慨接受我的邀请成为合译者,在繁忙的工作之余拨冗翻译了本书的第6、7、9、10章,使得本书得以早日和中文读者见面。你是我遇见的专业人士的典范,我从你身上学到许多东西。谢谢!(但人非圣贤,如书中难免存有错讹之处,那是我的责任。)

最后,必须感谢支持我完成艰苦翻译工作的家人,包括我的父母、爱妻Jenny和胞妹Agnes以及小儿多多。占用了很多本该属于你们的周末时间,我心中深感愧疚,但你们总是很宽容地表示理解,这又使我感觉欠你们更多。

最后,祝读者能够开卷有益,相信作为作者的Bob大叔、引进者的人民邮电出版社和译者的我们,定然感到十二分的欣慰。

章显洲

杭州,2012/7/30