如何快速了解一个系统

/ 收藏 / 没有评论 / 1900浏览

从不同的层次、不同的角度,来了解跟系统有关的整体框架。

概念层

  1. (最重要)明晰需求:询问了解系统解决的问题。(可以跟产品经理和项目经理沟通一下) a. 没有该系统时问题的解决办法,该系统的解决办法 b. 目标用户是谁 c. 系统创造的价值
  2. 专业词典:了解该系统所在领域的专业用词,不然沟通起来效率很低

概念层掌握的内容是最重要的,这些在之后了解其他层次时候,需要进行回顾,如此才能比较深入掌握需求与实现的对应关系,并进一步提出一些有价值的问题。

功能层

  1. 角色扮演:代入不同角色,体验该系统,从感性上了解系统的功能
  2. 完整流程:不同角色的请求或动作实现的完整流程,如何在各个子系统间流转

架构层

  1. 整个系统有哪些层次结构,有哪些子模块
  2. 各个子模块的功能及实现方式
  3. 模块之间的通信方式,比如协议、同步还是异步等
  4. 各个模块如何实现高可用
  5. 重点关注系统架构中与普通架构不同点,或者说与之前遇到的大部分架构不同的点,了解其原因

*关键技术点*

这个不同的系统不一样,有的是算法、有的是技术、有的是架构等等

*通用技术点*

  1. 如何实现对系统的监控及告警
  2. 哪些模块使用了缓存,如何保证缓存的一致性
  3. 如果是分布式系统,如何保证系统和数据的一致性
  4. 如何实现高可用、容灾
  5. 如何实现系统的可伸缩性

组织层面

  1. 项目有哪些成员,每个人是如何分工
  2. 项目有哪些合作伙伴,合作内容是什么,互相提供了什么价值

了解一个系统,不能停留在需求和技术上,人员的分工和合作伙伴也是非常重要,一方面可以协助判断哪些是核心模块、重点模块、哪些是辅助模块。而且了解人员分工后,在进一步了解系统时,遇到问题的时候,也能有针对性地请教对应子模块的负责人

如果对你有一点帮助,麻烦为我点一个赞,如果没有帮助,也非常期待你的反馈