阿里P9专家右军:以终为始的架构设计

本文摘自《架构宝典》,作者右军,介绍了架构设计应以终为始,从需求出发,强调架构师需理解业务、关注SLA,并通过PMC框架、多视角多层次分析进行架构设计。文中还提到架构是演进的,需要关注功能与非功能特性,并在设计时兼顾各利益相关者的需要。
摘要由CSDN通过智能技术生成

P

右军

读完需要

17

分钟

速读仅需 6 分钟

右军(于君泽),蚂蚁金服P9技术专家,在 IT 领域从业超过十五年。对 高并发、分布式架构、内建质量、研发管理有一些心得。维护公众号“技术琐话”,合著有《深入分布式缓存》、《架构宝典》、《程序员的三门课》等书籍。本文摘取自《架构宝典》

1

   

缘起

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

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

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

  • 他们的“痛点”是什么?

  • 如何让他们更高效地工作?

  • 你如何满足他们的需求?

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

图 2.1

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

2

   

我们的思考方式

在抛出笔者的观点之前,先来看一下黄金圈理论,该理论由著名的营销顾问西蒙·斯涅克提出,如图 2.2 所示。

一般的营销方式是“这台电脑功能强大,性能优秀,买一台吧”! 但苹果这样的公司恰恰相反,苹果公司的营销方式实际上是这样的: “我们做的每一件事情,都是为了突破和创 新。我们坚信应该以不同的方式思考。我们挑战现状的方式是把我们的产品设计得十分精 美,使用简单,界面友好。我们只是在这个过程中做出了最棒的电脑。想买一台吗?”

在制定营销策略时,运用此黄金圈,从 why 开始,再到 how,最后再考虑 what。即先找到“为什么”,建立自己的核心价值理念,突出“为什么”,个性鲜明、追求极致,并始终用 why 来检验 how 与 what!接下来,尝试用 why-how-what 的思路来分别谈一下我对软件架构的一些想法。

图 2.2

3

   

为什么要做架构设计

3.1

   

由模型到实施

无数的著作都论及软件架构和建筑的关系。我认为架构就如同一张蓝图,没有图纸很难建造房屋。如图 2.3 所示,一个令人神往的海边建筑涉及的方方面面非常多,具体实施过程还包括各种测量和计算,没有一个架构设计过程是不可能的。

图 2.3

图 2.4

如图 2.4 所示,室内的图纸也有建筑分布、水电图等,以服务于不同的目标。水电图指导水电施工,如果搞错了,再返工也是蛮复杂的一件事情。

3.2

   

业务规模发展带来的复杂度

如果说设计师给你的效果图相当于 UI 设计的话,那么建筑工人建造的就是设计的骨架了(比如架构分层、部署)。而合适的架构可以见微知著,适应变化,在快速规模化效应到来时较好地解决客户问题,如图 2.5 和图 2.6 所示的 2 个例子。

图 2.5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值