程序员如何快速熟悉一个系统

本文摘自腾讯云

业务熟悉

  • 业务情况:系统所在的行业的情况是怎样的
  • 目标用户: 系统的目标用户是谁?比如是给高层做决策用? 给运营或者客服用,互联网用户用?用户画像
  • 使用情况:平均多少人在使用?高峰有多少人在用?
  • 业务价值:系统有什么业务价值?有那些指标可以衡量系统价值
  • 功能模块: 系统有哪些功能模块,关键业务流程有哪些?
  • 系统指标: 系统的非功能性需求有哪些,如性能,质量,扩展性,安全性
  • 未来规划: 系统未来的规划是怎样的?

业务架构

  • 有哪些子系统或模块,系统之间的关系是怎样的
  • 对外上下游的接口有哪些,干系人是谁
  • 关键业务流程怎么实现的?用类图,时序图表达出来

开发架构

  • 代码在哪里,怎么批量搞下来,方便后续搜代码
  • 包怎么划分? 怎么分层?如项目目录结构
  • 采用了什么框架? trpc, springcloud ?
  • 用了哪些工具包?
  • 用了哪些中间件
  • 依赖哪些平台

运行架构

  • 系统能支撑多少qps
  • 与上下游的系统如何交互呢? trpc? http? 异步还是同步

数据架构

  • 采用什么样的数据库存储?
  • 关系型:梳理完整ER图,数据量有多少? 归档逻辑怎么样
  • 非关系型数据:梳理表设计,数据量有多少,归档逻辑怎么样
  • 数据同步任务有哪些?具体怎么操作
  • 大数据架构如何使用的?数据流架构梳理?

物理架构

  • 系统都有什么环境,如果发布部署,发布时间窗口?
  • 系统有多少服务?
  • 多少机房部署
  • 网站的cicd 流程

系统运维

  • 关键工鞥是否有监控,系统配置了哪些告警项目
  • 除了问题,如何解决,日志在哪里,是否有全链路的追踪,是否有紧急操作,比如开关配置,降级,限流等
  • 系统有哪些问题,可以找开发同学回顾历史问题,以免踩坑
  • 运营和客服反馈的常见问题有哪些
posted @ 2025-05-16 14:45  wsl-hitsz  阅读(9)  评论(0)    收藏  举报