开发经常会遇到下面这三种情况:
- 入职新公司
- 人力支持陌生项目
- 同事离职,任务交接
那么如何熟悉新项目?如何快速上手呢?
下面是自己总结的一些经验,主要从业务、技术、实践三个角度来梳理,仅供参考,适合自己的才是最好的。
业务驱动技术
了解产品定位、业务需求、核心流程是第一要务。主要是通过产品文档、需求文档、设计文档等来了解以下问题:
- 为什么做这个产品?
- 解决了什么问题?
- 目标用户是谁?
- 产品边界是什么?
- 上下游有哪些产品?
- 有哪些业务模块?
- 各业务模块之间是什么关系?
- 核心业务流程是什么样的?
- 业务数据是如何流转的?
技术服务产品
技术就是产品的具体业务需求落地。主要是通过应用架构、技术架构、数据库 ER 图、接口文档等来了解以下问题:
- 有哪些子系统或模块?
- 各子系统或模块的职责是如何划分的?
- 各子系统或模块提供什么功能?
- 依赖哪些基础服务设施?如:配置中心、注册中心、统一网关、日志平台、监控平台等
- 使用哪些技术栈?如:开发语言和框架、数据库、中间件等
- 各子系统和模块之间如何交互?如: HTTP、RPC、MQ 等
- 代码结构采用的分层模式?如:传统三层架构、DDD 等
- 有哪些开发规范?如:代码可读性规范、Git 分支模型、 Git 提交规范、版本号管理规范等
- 如何发布或部署?如:单机、集群、分布式、容器化、自动化、网络分区等
- 如何实现高可用?如:负载均衡、自动扩容、限流、熔断、降级等
实践推动理解
看一百遍,不如实际操作一遍。
- 搭建开发环境,如开发语言、数据库、中间件、 Maven 私服、Git 账号等
- 本地构建项目服务,并启动成功
- 查看接口文档,测试通过几个不同类型或业务接口,熟悉数据来源和数据输出
- 结合实际场景,Debug 核心业务完整的处理流程
- 查看项目日志或 Git 提交历史,了解最近更新的功能,修复的 Bug 等,如果交给自己会如何做?
- 从小任务入手,先认领简单的功能开发或 Bug 修复
- 循序渐进
总结
- 主动沟通,是提高效率最快的方式。
- 边学边做,能更快了解业务和代码。
- 总结沉淀,找到适合自己的方法,才是最有效的。