您好,我是汤师爷。
在工作中,我们常常会听到以下讨论:
- 产品经理说,当前的业务架构过于复杂,需要重新梳理。
- 技术领导表示,这个项目很复杂,需要进行系统架构方案评审。
- 研发经理提到,这次的秒杀活动访问量非常大,需要应用高并发架构方案。
- 一线研发人员说,互联网大厂都采用微服务架构,我也要学习微服务架构设计。
这些讨论中提到的架构到底意味着什么?上述说法到底正确与否?
实际上,上述说法都是正确的,只是观点视角不同。
复杂的系统涉及多方利益相关者,包括客户、产品经理、研发人员、销售、运营和管理层等。由于不同背景和认知差异,每个人对系统的看法和处理方式各有不同。
为了应对复杂性,我们会为不同利益相关者设计特定的架构描述物。通过分类和定义,让每种架构描述都有其侧重点,使每个利益相关者能够快速获取他们最关心的信息。
要实现这一目标,我们首先需要理解"视角"和"视图"这两个关键概念。
架构视角
视角是指站在何处观察,换言之就是你的视点。
我们以城市为例,假如你站在城市的某条街道上,会看到什么?
你可能只会看到几栋楼房,几排树木,几条大马路和熙熙攘攘的行人。
但是如果你坐在飞机上看呢?你能看到一片片的楼盘,看到群山、江河湖海。因此,你看到的事务与你所处的位置息息相关,同时也会影响你对事物的看待方式。
如果把视角比作一个坐标点,那它需要一套坐标系,常见的坐标系包括四个维度:广度、深度、视图类型和时间。
广度表示对事物的广泛程度。以业务流程为例,不同出发点会导致需要对单一部门的流程进行观察,或是需要观察多个部门的协作流程,甚至需要看到跨部门的端到端流程。
深度表示观察事物时需要到达何种细节层次,例如观察业务流程时,需要了解组织级别、部门级别,或是某个岗位的具体操作步骤。观察软件系统时,需要了解系统级别、应用级别、模块级别,甚至是代码层面。
广度和深度一般相互影响,观察范围越广,层次就会越抽象。高层管理者的观点通常更综合,较少关注细节;而一线执行人员则对细节了如指掌,但视角较为狭窄。
时间维度较为直观,用以表示对事物的时间点,包括过去、现在或未来。
视图类型是为利益相关方量身定制的一组关注点的集合,将在接下来详细介绍。