1. 了解项目背景可以了解整个项目的技术选型,以及选型的优势
2.了解各个模块方法:页面访问路径–前端项目–后台服务–数据库地址目的:梳理哪些项目是给前端提供服务的,哪些项目是给后端提供服务的,了解这个模块的业务线提供了什么功能,这个阶段目的是见名知其意,重点是仅仅知道这条业务线提供的整体内容。
3. 了解各个项目间的关系如果说站在整个业务的本质上看,业务无非就是一堆代码运行在一堆机器上。那么站在单个项目来看,一个项目无非就是对数据库的增删改查操作而已,或者从使用者的角度看,一个项目就是输入一些参数得到一些返回结果。所以接下来我们要做两件事,一个是整理数据库表,一个是整理Controller层的所有接口。
4.了解数据库帅选出核心表,再具体分析这些核心表字段之前,还要做一件事就是找出表中间的关系。如果表b中有个字段叫比如a.id,那么b和a就是一对多的关系,如果两个表有rel中间表,那二者就是多对多的关系,
5.深入代码当你对数据库表做了以上到了解后,你基本上对这个系统能提供什么服务了解到差不多了。这个不论你的代码长什么样子,数据库摆在那里,其实能提供的服务就已经差不多出来了。
我认为一个业务相关的项目代码只分三个部分:
通过交互对自身数据库进行增删改查操作通过定时任务或服务器脚本对自身数据库进行增删改查操作调用或通知其他服务做一些事情如果只是单一项目,无非就是通过各种途径去玩自己的数据库而已,前两点足够了。
而如果是微服务部署,那么加一个第三点足矣。
我们将代码逻辑分成这三个部分看,快速了解一个项目就不成问题,甚至在你没有看过某一项目而突然有一个bug要你解决时,你也可以按照这种方式去快速定问问题。
6. 重新整理项目之间的关系好了,这时候每个项目你已经大致了解,最起码调用的效果,数据库所能提供的服务,甚至某些关键部分的本质逻辑,你是清楚的。
这个时候,要重新整理下项目之间的关系。根据之前的接口名称,详细了解下项目间的调用关系。理不清的部分去问老员工,这时候你带着自己的了解问,他们也能给出更多的信息。
看看每个项目中用到的中间件,主要是mq服务,看看谁是生产者,谁是消费者,以此来了解关系