软件架构的艺术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

作者序1

“请问Wangler博士,您认为在一个产品研发机构内,研发流程和系统架构技术哪个更为重要?”这是我和本书合作者吴庆海博士在一次工作晚餐时向西门子医疗研发部门的前负责人及总架构师Wangler博士提出的问题。大多数读者或许只知道西门子医用CT机系统,但是未必知道它只是西门子医疗部门的核心系统之一。从另一个角度来讲,西门子在世界医疗设备及技术上的领导地位,是和其在医疗系统架构及相关技术上处于领先地位密不可分的。这些辉煌的成就,作为总架构师的Wangler博士是功不可没的。

我们之所以问Wangler博士这样一个问题,就是想先拿一个争论比较激烈的话题作为引子,目的是想听听一位架构权威人士是如何看待产品研发中系统架构这个问题的。当Wangler博士听到我们的问题后,稍作沉吟,然后回答:“嗯,虽然我认为两个方面都很重要,但是我个人认为系统架构还是比研发流程更核心一些。这是因为,系统架构……”从一个资深前辈那里,我们可以明显地感到,系统架构技术在他心目中是多么重要。

既然资深专家谈到了架构的重要性,那么让我们再来看看真实世界的另外一面。由于工作的关系,我也接触过很多自称是系统架构、设计、咨询的行业内人员。我经常发现他们整天在谈论什么解决方案、什么平台、什么系统架构。但如果我要求看一个系统的架构时,看到的却只是千篇一律的分层风格的系统概念图。更令人惊讶的是,很多从业人员认为这就是架构!如果再仔细追问,就会发现这样一个普遍现象:他们对该系统架构所能谈到的深度经常只停留在What层面。可是,谁又能相信一个只知道What而忽略了How的架构师,能够构建和设计出一个生死攸关的软件系统呢?

坦率地讲,这种现象表明了软件系统架构和设计行业内的从业人员普遍缺乏专业性。我与西门子首席架构咨询顾问,也是世界架构行业著名的Frank Buschmann进行过合作。就连Frank这样一位系统架构界的泰斗也对这样的现象发出过类似的感慨:做过几个项目,有了一些经验,就以为自己可以战无不胜了。系统架构如果真是这么简单,谁都可以仅凭借自己的直觉经验和天真而未经考证的手段,就能研发出诸如航空管制系统这样与生死紧密攸关的复杂软件系统了。

系统架构与设计是一个严肃的工程过程。下面这些问题或许可以帮助读者了解一个真正架构师的职业视角,这也是我写这本书的初衷之一:

● 我们都知道“一叶障目,只见树木,不见森林”这句话。应用到架构,该怎么理解呢?

● 系统架构界有这样一句经典的明言——“为了做一个系统,而先做一个系统”,该怎么理解这句话呢?

● 你说自己的架构和设计是正确可靠的。这只是口头的保证,还是能拿出什么证据?

● 就一个细节话题来讲,解决系统的性能问题,你知道业界有哪些经典的做法?

● 你如果是一个总架构师,在进行一个系统架构工作时,纯技术因素有哪些方面?除此之外,还有哪些问题你认为会成为震撼性的问题?

● ……

上述这些问题看似抽象,实则非常具体。并且这些问题都非常注重How的方面,即如何做。毕竟,如何完成一个任务、如何解决一个问题是最困难的事。从这个角度讲,我认为一个好的架构师首先就应该是一个好的工匠。

谈到工匠,大多数中国同仁会不屑一顾。我曾经多次与德国同事一起工作,发现一个有意思的现象:德国人历来以自己是专业工匠而自豪。这是因为他们与生俱来且固执地认为:只有好的工匠才能做出好的产品。开始我并不能完全理解这种情怀,但通过长期的合作,我才慢慢理解了德国人那种工匠型态度里,其实蕴涵了这样一个道理:做一个产品或研发一个系统,需要专业工作人员具备如下工匠型的素质:即全面且又面向重点细节的思路,参考前人的实践经验,聚焦问题的症结,采用安全且有创意的手段,追求完美的精神。这种对专业工匠型人员的理解,是促使我为中国读者奉献此书的一个原因。

进行一次大规模复杂系统的架构和设计活动,永远不会是一件简单、轻松的任务。在整个世界范围内,出现了许多有关软件架构和设计方面的文献及书籍。但由于这些研究散布的领域很广,又有点让人无从下手的感觉。由于当今业界(尤其是国内)还没有形成系统架构这一领域的系统化阐述,这正是促使我们为读者奉献一本凝聚个人系统架构领域经验书籍的另外一个原因。

大家都知道这样一句名言:“No Silver Bullet”。任何一套方法论或问题解决手段都有其明显的适用场合和历史发展局限性。我希望广大读者能够在本书所展现的这个系统架构平台的基础上,进行大胆的创新和尝试。毕竟,有生命力的科学,才有绚烂的未来。

我在本书写作的过程中,得到了夫人及家庭其他成员的大力支持。当然,本书的合作者吴庆海博士的鼎立相助也是我深为感激的。不能忘记的是,在论据、论点及文思方面我也得到了身边同事及朋友的指点和帮助。在此,我再次感谢所有那些曾经帮助和支持过我的友人。

最后,祝读者“读万卷书,行万里路”,也祝中国的系统架构行业蒸蒸日上!

李伟

2009年1月

于北京