如何快速有序地接手一个项目
2019-09-11
见过一些人在接受一个老项目后,开始阅读~~~~一行一行代码,终于3个月后熟悉了整个项目。
软件开发生涯中,一定会遇到一只拦路虎『老项目』,循此规蹈此矩,你可能真的可以骑着『老虎』前进。
一切拦路虎都是纸老虎
情报收集
既然是老项目,最大的特质就是陌生,面对陌生的事物,切不可着急下手,第一步须收集各种情报,让这个项目在脑子里更立体,更形象。
情报来源-产品相关
产品体验(前后台)、历代产品迭代文档、相关产品人员沟通等,通过这些手段明确:
- 产品功能,目标用户,竞品和对标产品
- 体验中根据经验勾勒出来的大概的代码设计
- 需要研发经常介入的操作
- 历史上出现过的重大bug,常现bug
- 产品人员对之前研发的评价
- …
情报来源-技术相关
之前负责人的交接文档,研发产出的设计文档,开发文档,对接文档,可能至少有2周时间和之前负责团队进行交接,通过这些手段明确:
- 主流程图,框架图
- 设计细节:分库,
- 技术框架、第三方类库,
- 组件及用途:mysql redis kafka nginx 等
- 第三方服务:推送等文档
- 流程上下游:前端,大数据等
- 你对交接人的评价
- …
如果上述不能给出,需要自己根据产品相关和下面的情报自己整理。
情报来源-代码和环境
到此『纸老虎』的框架已经出来了, 再来把血肉给拼接上。可以开始分模块阅读手上的代码,同时让运维同事把线上环境各项配置罗列出来,最后需要明确:
- 线上环境配置:硬件配置,软件配置
- 线上机器压力和波峰波谷情况
- 自动任务crontab,常驻任务
- 上线流程
- 涉及代码异构,和上下游交互明细,redis key,restful api文档
- 熟悉单元测试
- 索要所有的证书,凭证,密码等
- …待续
情报处理
有了如上手段和目标,就可以着手整理属于自己的认知文档了(不同项目可能步骤有不同)。