新上手一个业务、或者一个系统,该如何快速学习并投入开发呢?多问自己以下的问题,先去搞懂它们吧:
业务学习
- 业务所在的行业情况如何?
- 业务的目标用户是谁?解决用户什么问题?
- 业务现在有多少人在用?峰值是多少?
- 业务的价值是什么,如何量化,如何衡量其价值?
- 业务有哪些功能,功能间是什么关系?
- 业务有哪些领域概念,梳理一下相关的领域模型?
- 业务的核心业务流程什么?SWOT分析?
- 业务的非功能特性如何?如安全性、稳定性、性能、体验、质量、扩展性?
-
技术学习
逻辑架构
有哪些子系统和模块,关系什么?
- 上下游有哪些能力,和谁对接?
-
开发架构
代码如何分层?
- 使用了什么框架、工具和中间件?
-
运行架构
上下游各个节点是如何通信的,rpc&https?
- 各节点及整体服务承受的压力极限是多少?当前qps多少?
- 系统有哪些环境,各个环境如何分配机器,都是如何部署的?如集群or分布式orCDN
- 全年运行有没有哪些时候更容易出问题?
- 系统都具备哪些监控?能否全链路追踪?有没有紧急能力,如开关、降级、限流等?
-
数据架构
使用什么数据库
- 主流程数据关系是什么(E-R图)
- 数据量有多少,是否分库分表?
- 有哪些同步任务、定时任务?
- 大数据框架使用情况如何?
