微信技术群:Day9884125
一 架构与系统
递进关系
架构核心:结构是一种思想,它是为了降低系统复杂度
二 概念/功能的区别
2.1 概念
概念: 是一种用于描述事物、事件、情况或现象的基本思想或理论。它是对客观事物或现象的抽象和概括,可以帮助我们更好的理解和记忆复杂的信息。
举例: 汽车、鸟
2.2 功能
功能: 是指一个事物或系统所能完成的任务或效用
举例: 汽车可以运输货物、鸟会飞的生物
2.3 区别
概念是定义,功能是实现。概念是目标,功能是实现目标的方法
2.4 商旅平台的概念和功能是什么?
概念: 为企业和个人提供数字化的一站式旅行服务平台
功能: 机票预订、酒店预订、旅游服务、火车票预订、旅游服务、打车服务、美食推荐、外卖服务、行程管理
2.5 功能分类
2.5.1 显性功能
显性功能: 暴露出来的比较明显的功能,用户可以感知到的
例如: 机票、酒店、火车、旅行、打车、美食、外卖、搜索、支付、退改、查看、精选、定制、咨询、投诉、建议
当我们识别不出这些功能的时候,可以问谁?问产品、业务、架构。问了这些人谁得出的东西更细化,问方向性的问题,这时候我们更建议问产品。
2.5.2 隐性功能
隐性功能: 虽然没有提到,但是在整个系统中又要用到,有哪些呢?
例如: 注册、登录、联登、分析、结算、预管、推送
解决功能要解决用户能感知到的功能,其他的可以后边慢慢来
2.5.3 什么是分类
含义: 是根据对象的某种特征或属性将其划分到不同的类别或范畴
主观的判断总结: 这些都是我们已经知道的,呈现给我们的结果分类
2.5.3.1 分类的标准有哪些
- 特征相似性
根据对象的特征是否相似来进行分类 - 功能相似性
根据对象的功能是否相似来进行分类 - 目的和用途
根据对象的目的和用途来进行分类 - 时空分布法
根据对象在时空上的分布来进行分类
前提是有特征的:
机票:价格、航班时间、航空公司、座位等级、折扣、旅行日期、出发地和目的地、行李限制等。
酒店:价格、地理位置、星级、客房类型、设施、入住和退房时间、酒店客服等
火车:价格、出发和到达时间、车次、座位类型、车厢等级、行程时间、出发地和目的地等
美食:菜系、价格、口味、食材、餐厅环境、服务等
特征分类就是建模的过程,自己习惯通过什么进行分类,觉得分出来之后对于目前的架构和未来的维护比较好。就可以这样分,分出来的东西要往未来看,不能凭感觉,凭感觉做出来的事很容易走偏。
2.5.3.2 划分标准总结
按照大家的理解,很多时候理解东西的详细,完全自己对东西的看法和理解,看的东西多了,就会有自己的理解。一个人的认知是有局限的,可以找一些人讨论,一些专业的人。
特征相似 在很大程度上,我们会找关键字一样的内容。在很多时候我们需要常识去做判断,防止常识出错,我们需要大量的学习和总结归纳验证
作为架构师,划分的时候要有自己的标准,用准确有力量的词语去表达,而不是觉得含糊之类的描述。
2.5.3.3 功能分类的目的
表达将来一些东西自己的边界,将来来一个需求,需要识别特征归属的边界,为后面领域划分做准备。
如果有一些功能,确实干的一些事情差不多,这时我们就可以按照目的和用途再一次进行收缩,向上总结。
三 用子域进行战略设计
分类之后如何抽象
3.1 抽象的产物
3.1.1 抽象产物的方法
- 抽象出来的东西,范围够不够宽,是不是等同归了一个大类
- 归类出来的大类,下面的小类,是不是可以理解为一个个子问题
- 子问题是否可以合并,还是说不能合并
3.1.2 如何拆分子类、子域
3.1.3 用子域如何进行战略设计
子域是一个"重要部分"
四 绘制三种架构图
4.1 业务架构图
站在业务视角俯瞰业务群体结构
业务架构要大致让人看懂你系统的流程,不会体现技术的内容。让业务和产品理解公司要干的事情。
4.2 微服务架构图
业务群体结构落地后的系统规划
是给技术看的,也可能会有产品看,更好的和技术沟通
4.3 数据流规划图
主体数据的走向与系统之间的关系
给一些不懂功能的人看的,
五 架构师思维模型
5.1 思维三部曲
- 概念、功能
- 特征分类:特征相似性、功能相似性、目的和用途、时空分步法
- 类比抽象
5.2 划分子域
- 赋予子域功能边界
- 根据子域划分系统
- 绘出三种架构图
六 作业
6.1 动手题
试着按照需求分析思路理解和分析自己的业务,输出架构图文档
6.2 思考题
试着思考自己所负责的系统,在整个系统中,解决了什么问题,边界职责是什么