阅读者开篇:软件架构师应该知道的 97 件事

  • 张逸

2010 年 12 月 28 日

话题:架构

【编者按】《阅读者》专栏终于开张了。我惯常以蠹鱼自居,如今主持这个栏目,亦可以自封为“阅读者”了。

是的,我们是阅读者,不是书评家。一本好书不需要书评家的饶舌,阅读才是对它的最大尊重。之后呢?是束之高阁,藏于书山,还是不吝于分享与交流?真正的阅读者不屑于藏私,分享才是 Web 2.0 的王道。所以,有了豆瓣;现在,有了 InfoQ 的《阅读者》。

技术的阅读不同于文学的阅读。文学的阅读在于心灵的洗涤,以及那种追寻意境之美的沦浃肌髓;在于朦胧,在于玄妙,而所悟有所得。这表达了感性的一面。技术书籍的精要在于准确、简明、完整而实用,不需要引人遐想,更不需要堆砌朦胧之美。或许可以说,技术书籍传递的是钢铁的硬线条,展现了它的结构与质量,而不是闪动的金属辉光。技术书籍的阅读需要理性地分析,客观的评价。这正是《阅读者》专栏的最高原则。

软件业的特点是变化。若要提高软件开发的技能,就必须跟上技术发展的步伐。埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识。世界上并不存在速成的终南捷径,但阅读好的技术书籍,尤其是阅读大师们的经典著作,总能收到事半功倍之效。一位优秀的程序员,或许就是一名好的阅读者。好的阅读者,总是知道如何选择好的书籍。书海浩繁,良莠不齐。阅读技术好书,如与智者交谈,“与君一席话胜读十年书”;遭遇技术烂书,如被拐卖,“少小离家老大回,乡音无改鬓毛衰”。

《阅读者》专栏希望通过我们的阅读经验,去芜存菁。阅读者与好书是伙伴,与劣书是敌人;阅读者希望保持冷静的客观,不过偶尔也会表露个人色彩的爱憎分明。如何选择,最后还在于《阅读者》的阅读者。


clip_image002

本期《阅读者》介绍了一本小书。书虽然薄,却极有分量;内容不多,却有大智慧。

是否有程序员奢侈地想过,加入这样一个团队:那些世界上顶尖的架构师坐在你的身旁,与你结对设计;或者当你遭遇难题时,亲自为你指点迷津;或者在架构评审时,为你点评架构的优劣。他们态度优雅,行动举止之间透露出 Geek 的风范;他们不厌其烦,展现出非凡的技艺。他们作为你的导师,言传身教传承着优良的软件工艺。这些顶尖的架构师或者声名显赫,或者技术超群。他们是 Neal Ford,Michael Nygard,Bill de hOra,Rebecca Parsons……

我知道,你认为我在讲述天方夜谭。没有哪个程序员可以这样奢侈,可以这样幸运。

不错,这确乎是我的幻想。不可求,不可遇。然而,书却可以拥有这样的魔力,可以让这样的幻想得到实现。感谢 Richard Monson-Haefel 荟萃了这样一个团队,并将他们带到每一个读者身边,那就是这本薄薄的小书《软件架构师应该知道的 97 件事》。

我不想为这本书唱赞歌,然而阅读此书,确实让我受益匪浅。以下是我在阅读本书时摘要的笔记:

在大型软件项目中,关注根本复杂性,消除偶发复杂性,抽丝剥茧制订解决方案,才是真正的挑战。……应该尽量选择源自实际项目的框架,警惕那些象牙塔里的产品;分析方案中有多少代码直接用来解决业务问题,有多少只是用来实现用户与应用的交互;谨慎使用软件厂商在幕后推动的方案,它们并非一无是处,但往往包含偶发复杂性;要量体裁衣,为问题制订“合身”的解决方案。

沟通必须简明清晰。没有人愿意阅读冗长的架构决策文档,架构师言简意赅地表达观点是项目成功的必要条件。项目启动之初,凡事能简则简,千万不要一头扎入冗长的 Word 文档里。可以借助工具,比如简单的 Visio 图表来表达你的想法,尽量画简单些,毕竟时过境迁,想法总会变化。非正式的白板会议是另一种有效的沟通手段,把开发人员召集起来,在白板上写下你的想法,比任何方法都来得有效。

假设有另外不同的团队打开了代码库,他们很容易便可了解到当前在做什么,这是优秀架构的基础。无需对架构进行过度的简化或为之准备面面俱到的记录文档;好的设计会以多种方式说明自身。

类似这样的架构箴言,在本书俯拾皆是。不要认为这些言论仅仅是泛泛而谈,仔细分析,你会发现其中蕴含的真理令人深省。不错,阅读本书无法让你成为一名优秀的架构师,毕竟本书并不是要传授架构的技巧,但它却能开拓你的视野,让你认识到软件架构以及架构师的诸多方面。正如本书的译者序写道:

全书由 97 篇格言式散文构成,没有高调的说教,没有抽象的术语,而是以平实、幽默、智慧的笔触,将他们认为对成为优秀软件架构师而言至为重要的精髓和盘托出。全书犹如一块玲珑剔透的水晶,97 个切面折射出来的都是出自一线软件架构师的专业智慧。

本书不是为初学者准备的,那些经验之谈对于初学者而言,略显隔靴搔痒;只有真正战斗在一线,并曾经为设计难题而头撞南墙,或者技术水平发展到了一个瓶颈期的架构师或者软件设计与开发人员,在阅读这些话语时,才会搔中他的痒处。就好比孙悟空听菩提祖师说法,手之舞之,足之蹈之,那是因为他听到妙处,体会了各种玄妙,所以才会喜不自胜,不觉作出踊跃之状。

架构