前几天,朋友送了一本书给我《恰如其分的软件架构》,一看副标题,“风险驱动的设计方法”,嗯?“风险”,这是我最想了解的,最近遭遇太多太多风险了,做梦都在想怎么化解各种风险。
想想现在的架构工作,我们总会发现这样一个情景:架构师总是在系统投产上线后,进行项目总结时才发觉现行的架构与最初相差甚远,甚至是大相径庭,但是细想一下,每一个改动都是有理有据的,都有存在的理由。然而,这个结果,投产后的架构,却不是我们希望看到的,它是一个妥协的产物,——期望的架构已经远离了我们。
在商界有种说法,“CEO是公司里最后一个知道公司要破产的人”,在技术领域,是不是可以说“架构师是团队中最有一个知道架构即将被推翻的人”?哎,可能还真是。
想一下我们的架构是从何而来的。很简单,是从头脑中投射出来的,简单的说,就是知识+经验的产物,经过多日的熬夜奋战,终于,一份叫做“架构设计说明书”的文档诞生了。在这个过程中,我们付出了艰辛的劳动,考虑了诸多的特殊和异常场景,建立了丰富的模型,制定了详细的数据流程,想当然的认为它能够适应领域内的大部分场景,但通常情况下,我们是错的。
于是,我决定看看这本“风险驱动设计”,看看如何从风险的角度构架我们的系统,看后收益匪浅。这本书对架构建模进行了深层次的分析,提出抽象规模和复杂度、分析系统质量、忽略细节等等技法,感觉完全可以套用,以前做架构模型没思考这么深。
这本书还提到了架构风格,这是我比较欣赏的,架构风格是“元素和约束组成的语言”,其可以预制约束集、统一理解、减少沟通损耗、设计重用、保证质量等等优势,还介绍了柏拉图式风格、分层风格、大泥球风格等,甚是受用。
估计这本书在国内流行不起来,原因是大家都在忙着写代码,毕竟在世人眼里中Coder才是代表IT技术的。但是如果你的目标不仅仅是写代码,而是想统揽全局,向架构师方向发展的话,建议你读读这本书。还有,这本书翻译的非常专业,没有丝毫机器翻译的味道,而且作者对技术的理解也非常到位,整体看下来就是一气呵成,通顺流畅,值得推荐。
秦小波