吊打面试官!从多维度理解架构

news/2024/9/20 3:10:35/文章来源:https://www.cnblogs.com/tangshiye/p/18412565

大家好,我是汤师爷~

在工作当中,我们经常会听到以下说法:

  • 产品负责人说,现在的业务架构太复杂,需要仔细梳理下。
  • 技术领导说,这个项目很复杂,需要做下系统架构方案评审。
  • 研发经理说,这次秒杀活动访问量非常大,需要用到高并发架构方案。
  • 一线研发说,互联网大厂都会用到微服务架构,我要学学微服务架构设计。

上面提到的架构到底是指什么?这些说法究竟是对还是错?

其实上面的说法都是对的,只是采用的视角不一样。

复杂系统涉及多方利益相关者,如客户、产品经理、研发、销售、运营和管理层等。由于背景和认知差异,每个人看待系统的角度和方法都不尽相同。

为控制复杂度,我们为不同角色设计特定的架构描述物。通过分类和定义,让每种架构描述都有其侧重点,让每个利益相关者能快速获取他们最关心的信息。

要实现这一目标,我们首先需要理解"视角"和"视图"这两个关键概念。

架构视角

什么是视角?大白话就是你站在什么地方看。

我们以城市系统为例,你站在城市的某条马路上,能看到什么?

能看到几座楼房,几排树木,几条大马路,熙熙攘攘的行人。

但是你坐在飞机上看,能看到什么?

能看到一片片的楼盘,能看到群山,能看到江河湖海。所以,你能看到什么,和你站在什么地方看有很大关系,同时也会影响你看待事物的粒度。

如果把视角比作一个坐标点,那它需要一套坐标系,坐标系通常有4个维度:广度、深度、视图类型、时间。

广度是指看待事物的宽度,以业务流程为例,根据出发点不同,有时需要看一个部门内的流程,有时需要看多个部门的协作流程,有时需要看端到端跨部门流程。

深度是指看待事物时,要到达哪个细节层次,例如看业务流程,需要看到组织级、部门级、还是某个岗位的具体操作步骤。看软件系统,需要看到系统级、应用级、模块级、还是一行行的代码。

广度和深度一般是相互影响的,如果看待事物的广度越宽,那么层次就会越抽象,这和组织架构的设计也是相辅相成的,一般高层管理者看问题非常全面,但对细节不关注,一线执行人员,对问题的细节非常了解,但视角却非常窄。

时间维度比较好理解,就是看待事物的时间点,过去、现在、还是未来。

视图类型是为利益干系人量身打造的一组关注点的集合,接下来会详细介绍。

架构视图

什么是视图?大白话就是你想看到什么。

视图是为利益干系人量身打造的一组关注点的集合。

同样以城市系统为例,想要赶早高峰的上班族,他的关注点是哪条路线上班最快,因此他需要一副公交地铁路线图。

想要租房的租客,他的关注点是公司附近有哪些小区,租金多少,因此他需要一副公司附近的小区地图。

想要疏通下水道的工人,他的关注点是下水道是怎样排布的,因此他需要一副下水道的排布图。

同一个城市系统,不同角色的关注点是完全不一样的,想要获取的信息也是完全不一样,如果把所有信息杂糅在一起,不做视图隔离,导致的结果就是信息太庞杂,每个人都很难获取想要的信息。

同理,不同干系人看待软件系统的关注点也是迥然不同的,为了把不同人的关注点区分开,诞生了很多软件视图的分类方法,比较著名的有“4+1”视图,TOGAF的业务架构、应用架构、数据架构、技术架构等视图分类法。

TOGAF的4种架构视图

1996年,克林格.科恩法案颁布,美国联邦政府立法,强制要求政府机构使用企业架构理论构建自己的IT系统,最重要的机构是国防部、财政部,这一举措,直接让政府机构的数字化水平,以火箭般的速度飞速发展。

同一时间,大名鼎鼎的TOGAF也在快速发展,它大量参考了政府机构的企业架构理论,沉淀出一套更加通用的企业架构方法论。

目前80%的福布斯排行榜前50名的企业,以及60%的美国500强企业,都在使用TOGAF理论改善自身的IT架构。

我们重点说下TOGAF的4种视图类型:业务架构,应用架构,数据架构,技术架构。

它们是企业架构中的四个主要部分,它们关注的方面和功能不同,但相互关联和支持,共同构成了企业的总体架构。

一个清晰的企业架构可以确保业务流程顺畅、信息系统合理支持、构建步骤有序。企业架构是项目决策的重要依据,也是企业未来发展的基础。

  • 业务架构定义了为实现企业的业务战略,企业将自身业务结构化表达为全面的、多维度的抽象模型,包括商业模式、价值流、业务能力、业务流程、组织架构,以及它们与战略、产品、策略、项目执行、利益干系人之间的关系。
  • 应用架构定义了企业中的应用系统的结构和行为,这些系统之间的关系,以及它们如何与业务流程对接。
  • 数据架构定义了企业如何收集、存储、管理和使用数据,涉及到数据模型、数据管理、数据集成和治理的设计和实施。
  • 技术架构定义IT基础设施和技术组件的结构,通过它们可以支撑起企业对业务、数据、应用服务的需求,它们包括但不限于硬件、可部署的软件包、网络、技术中间件、通信设施、运算设施等。

通过视图与视角,我们可以分离关注点,将复杂问题进行拆解,让每个局部的复杂度控制在一个可以接受的范围。同时,团队有了统一的架构认知坐标系,进一步促成了业务标准化,通过分离不变点与变化点,提炼出可复用的业务组件,快速响应业务需求变化。

架构视图的核心概念

每种架构视图都包含一系列核心概念,通过这些概念可以层层剖析整个业务系统,系统化地理解和管理整体架构,确保各个层面的协调与一致。

  • 业务架构:商业模式,价值流,业务能力,业务流程,组织架构。
  • 应用架构:应用服务,应用结构,应用交互。
  • 数据架构:数据模型,数据库技术。
  • 技术架构:软件部署,技术组件、基础设施。

本文已收录于,我的技术网站:tangshiye.cn 里面有,算法Leetcode详解,面试八股文、BAT面试真题、简历模版、架构设计,等经验分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796639.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数组的下标越界

1.数组下标 数组的下标通俗来讲是数组中数据的代号,例如a[0]=1,即数组下标0代表1 2.下标越界 假设创建的数组内存为3(a=new int[3]),则数组的下标为0,1,2. 如果多输出了下标3,则会显示下标越界。 1.正常数组的输出2.下标越界的输出(即提示你数组下标越界异常!) 3.数组…

转载:国产操作系统麒麟v10、UOS在线打开excel文件并动态赋值

在实际的开发过程中,经常会遇到数据库中的数据填充到excel生成一份正式文件的功能,PageOffice客户端控件支持在线预览Excel文件时,通过Workbook对象来实现对Excel文件的数据填充功能,如果只是简单的填充一下数据,那么通过调用Sheet对象的openCell方法获取到Cell对象并赋值…

构建 openEuler Embedded 24.03 LTS (Phytium BSP)

Ubuntu 24.04 构建 openEuler Embedded 24.03 LTS (Phytium BSP) 参考链接:Phytium-OpenEuler-Embedded-BSP - Gitee 1 介绍 本文档介绍如何在Ubuntu 24.04上构建openEuler Embedded 24.03 LTS (Phytium BSP)。对计算机配置有要求。 2 脚本 将以下内容复制到新文件oe_phy.sh,…

架构师备考的一些思考(四)

前言 对于数学,我们之前学的是对的,但不是真的,所以我们没有数学思维。 对于计算机,我们学校教的是对的,但不是真的,所以仅仅从学校学习知识的应届毕业生,不论985,211,本科,专科都一样,都是一张白纸,啥也不会。 案例分析 案例分析是5选3,第一题必答。问题一的类型 …

字符串-面试题

字符串的相关面试题String 的不可变性String底层是一个 final修饰的字符数组,当改变String的值时,会在常量池生成新的字符串,字符数组的地址指向常量池中新的字符串StringBuffer的扩容原理String、StringBuffer、StringBuilder三者对比Strings是不可变的字符序列,底层是一个…

单考一个OCP认证?还是OCP和OCM认证都要考?

​ Oracle的OCP认证是数据库行业非常经典的一个认证,从事数据库行业的人都建考一个 Oracle OCP 认证。 OCP认证内容包括: OCA部分:数据库基础知识、SQL 语言使用、基本的数据库管理技能等,如数据库安装与配置、理解数据库架构、管理数据库实例、备份和恢复,以及使用 SQL 进…

为什么那么多开源软件都用netty来做网络通信编程框架?

1、用netty来做网络通信编程框架而不是我们自己去基于JDK NIO来编程的好处有如下这些: (1)、netty支持常见的应用层协议(如:HTTP、FTP、DNS等),还可以支持自定义协议; (2)、netty可以自动解决网络编程当中的粘包与半包问题; (3)、netty还可以支持流量整形; (4)、netty对…

USB总线-Linux内核USB3.0设备控制器中断处理程序分析(九)

1.概述 USB设备枚举、请求处理、数据交互都涉及USB设备控制器中断。当有事件发生时,USB设备控制器首先将事件信息通过DMA写入到事件缓冲区中,然后向CPU发出中断,随后CPU调用中断处理函数开始处理中断事件。 2.事件 dwc3 USB设备控制器事件使用dwc3_event数据结构描述,由4个…

通义灵码企业代码补全增强使用实践

通义灵码提供了企业代码补全增强的能⼒,在开发者使⽤通义灵码 IDE 插件的⾏间代码补全时,可以结合企业上传的代码库作为上下⽂进⾏⾏间代码补全,使代码补全更加贴合企业代码规范、业务特点。本⽂将分享如何构建⾼质量的企业代码库,以及开发者在前端和后端开发场景的使⽤实践…

LeetCode算法—分治法

纵有疾风起;人生不言弃思路:分治法的核心思想是“分而治之”,即将一个复杂的问题分成多个较小的子问题,分别求解这些子问题,然后将子问题的解合并,得到原问题的解。具体到求众数的问题上,分治法通过递归地将数组分成两部分,分别找出每一部分的众数,最后通过合并步骤来…

学习高校课程-软件设计模式-OOP 和 UML 类图 OOP 与 Java(lec1)

OOP 和 UML 类图 OOP 与 JavaLecture 1:OOP and UML Class DiagramsOOP with Java OOP 和 UML 类图 OOP 与 Java Object-Oriented Programming 面向对象编程Class Hierarchies 类层次结构 Superclass and subclass 超类和子类Pillars of Object-Oriented Programming 面向对象…

路由器刷机踩坑

ssh/telnet 路由器一般是用23端口,也就是telnet。具体如何开启ssh看型号。 breed breed是一个bootloader,在功能上类似于手机的Rec,用于提供一个界面刷入不同分区的镜像(至少不用敲命令行了)。 注意 breed不能用于刷入原厂固件,否则会砖(我就是这么干的)。 这是恩山论坛…