架构宝典
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 缘起

世界上有两件东西能够深深地震撼人们的心灵:一件是我们心中崇高的道德准则,另一件是我们头顶上灿烂的星空。——康德

架构是一种思维模式,可以理解为系统化地看待周遭事物并提出解决方案。从这个角度讲,小到一段代码,中到一个模块,大到一系列产品集,都有其架构层次。我们常常听到的抽象、扩展、复用、分层都是常见的架构设计手段。一位程序员经常做架构思维的训练和实践,然后成长为一位系统或者平台架构师,这是一种自然演化的成长路径。所以说,架构思维非架构师独有,架构师也非天降神人,而是通过实践、学习成长而来的。

架构师是连接商业世界与技术世界的桥梁,如同金门大桥一样(如图2.1所示)。《软件架构师的12项修炼:技术技能篇》一书曾大篇幅论述了接触客户的重要性,通过调研、会谈、引导等方式可以了解客户,了解产品展开竞争的市场,从而研究业务目标,考虑能为客户做什么,在尘土飞扬的商业背面来设计IT系统。比如,客户告诉你的未必是真正的需求,而是要挖掘背后的本质需求。此时,往往需要考虑如下几个要点:

●客户的“痛点”是什么?

●如何让客户更高效地工作?

●如何满足客户的需求?

因此,架构师不仅仅要懂得技术选型、约束,有丰富的代码研发经验,对于非功能性需求(比如性能、事务设计)有丰富的应对策略,还需要足够了解业务,了解客户需要什么,并知道如何衡量产品是否成功。这种成功是真实的成功,而不是象牙塔和实验室中架构师们假想的那种成功。

图2.1

笔者主张的架构设计思想,一言以蔽之就是“以终为始”。只有从需求出发,才能衡量架构设计的成败,也只有这样才能不偏不倚地不断评估当下所走之路是偏离了路线还是已经完成失去了方向。