
译者序
软件开发工作是由需求引领的,而需求会随着业务的发展逐渐变得庞杂。为了对持续变化的需求进行有效的管理,很多开发者与软件公司都建立了软件架构这样一个概念。尽管软件业与传统的实物产业不同,但它依然可以通过良好的架构指导项目的设计、编码、测试、部署以及维护等诸多阶段。从这个意义上讲,软件架构与其他行业的架构之间有相通的地方。
然而,这并不是一本泛论架构的图书,它谈论的是软件架构,并且尤为关注软件架构中的实际做法。与题材类似的其他书籍相比,本书在核心理念、结构安排以及术语使用等方面都有自己的特色。
本书的核心理念体现在恰到好处(just enough)这个词上。架构固然应该对实现起指导作用,但这个指导作用应该留有一定的余地,使我们可以对架构进行反思,并根据项目的发展情况对其做出调整。软件架构要想做得务实,就需要把握住恰到好处的原则,架构师要知道应该把模块细化到何种程度,才能使开发团队在既定的大方向下灵活地进行发挥。
在结构的安排上,作者首先简介了贯穿全书的Elixir项目,后续各章分别用该项目来做案例研究,以演示软件架构的某一个方面,把这些方面拼合起来就可以形成一套完整的案例。把该案例与工作中的实际项目进行对比,或许会对大家有所启发。接下来,作者谈了软件架构的含义和意义,并指出了描述架构所用的几种视点。然后,作者明确提出架构中需要关注的7个方面,并且用7章的篇幅来详细地进行讲解,使我们明白怎样才能恰到好处地应对这些方面。本书最后给出3个专题,分别介绍了大数据时代的分析架构、作者在多年工作中所积累的经验,以及业界经常谈论的25个架构话题。
在术语的使用上,作者经常采用两种或三种称呼来指代同一个概念,这不仅反映了该概念所具有的多重意义,而且还使读者感受到一种现象:不同的人在不同的情境下称呼同一个概念时,关注的重点是有所区别的。由于作者就职于IBM公司,因此译者在翻译术语时,优先考虑采用IBM网站上已有的译法,对于同时具有多种译法的术语,则酌情采用其中较常见的一种或两种。
纵观全书,作者清晰地描绘了软件架构工作的执行脉络,并指出了从系统环境到软件部署等诸多环节中所应注意的各种问题。需要提醒大家的是,软件架构必须通过适当的代码及硬件配置得以体现,因此,架构应该尽量与实际的编码及测试工作相契合,而且要与后两者保持互动。
在翻译过程中,我得到了机械工业出版社华章公司诸位编辑和工作人员的帮助,在此深表谢意。
由于译者水平有限,错误与疏漏之处,请大家发邮件至eastarstormlee@gmail.com,或访问github.com/jeffreybaoshenlee/psa-errata/issues留言,予以批评指正。
爱飞翔