从不同的层次、不同的角度,来了解跟系统有关的整体框架。
概念层
- (最重要)明晰需求:询问了解系统解决的问题。(可以跟产品经理和项目经理沟通一下)
a. 没有该系统时问题的解决办法,该系统的解决办法
b. 目标用户是谁
c. 系统创造的价值 - 专业词典:了解该系统所在领域的专业用词,不然沟通起来效率很低
概念层掌握的内容是最重要的,这些在之后了解其他层次时候,需要进行回顾,如此才能比较深入掌握需求与实现的对应关系,并进一步提出一些有价值的问题。
功能层
- 角色扮演:代入不同角色,体验该系统,从感性上了解系统的功能
- 完整流程:不同角色的请求或动作实现的完整流程,如何在各个子系统间流转
架构层
- 整个系统有哪些层次结构,有哪些子模块
- 各个子模块的功能及实现方式
- 模块之间的通信方式,比如协议、同步还是异步等
- 各个模块如何实现高可用
- 重点关注系统架构中与普通架构不同点,或者说与之前遇到的大部分架构不同的点,了解其原因
关键技术点
这个不同的系统不一样,有的是算法、有的是技术、有的是架构等等
通用技术点
- 如何实现对系统的监控及告警
- 哪些模块使用了缓存,如何保证缓存的一致性
- 如果是分布式系统,如何保证系统和数据的一致性
- 如何实现高可用、容灾
- 如何实现系统的可伸缩性
组织层面
- 项目有哪些成员,每个人是如何分工
- 项目有哪些合作伙伴,合作内容是什么,互相提供了什么价值
了解一个系统,不能停留在需求和技术上,人员的分工和合作伙伴也是非常重要,一方面可以协助判断哪些是核心模块、重点模块、哪些是辅助模块。而且了解人员分工后,在进一步了解系统时,遇到问题的时候,也能有针对性地请教对应子模块的负责人
如果对你有一点帮助,麻烦为我点一个赞,如果没有帮助,也非常期待你的反馈