盘资源,盘权限
实习刚入职时候,我们一定要做好的一件事就是和团队,确认当前大项目所需要的各种清单,例如代码库,数据库资源,redis资源等中间件情况,网关域名资源等等等。
盘优先级
一个大型的项目是由很多子系统组成的,如果这么多的子系统,全部熟悉,那就累到死了,一定要知道哪些是核心应用,哪些是非核心,我们可以编号,p0,p1,p2这种,这个过程和团队要做好沟通,也为后续的熟悉做好基础。
盘业务
从看的见,摸得着的层面盘清之后,就可以开始盘业务,这个过程要依靠团队的讲解,以及沉淀的业务文档来进行学习和梳理。如果二者都没有,那么恭喜,步入地狱难度,需要自己通过体验产品,来划分出模块,盘出整个业务,这个地方也是有技巧,首先要划清用例者,用户身份,运营身份,等等各种身份,基于身份的形式,体验产品的整个流程并形成自己的认知业务文档。
盘技术栈
从这个地方开始就是熟悉系统的流程,先去熟悉技术栈,都是采用的什么语言,什么中间件,什么开源,基于什么样的形式进行交互,这个过程从核心系统开始,看pom文件,配置文件来了解其中的技术点。比如看到mq,大概就能猜到项目里面有异步的数据流交互,看到es,猜测这个应用是具备大数据量的处理和查询。
盘入口
什么叫入口呢,controller,对外提供的rpc,http能力,定时任务,这些都是入口,从入口来入手业务逻辑是最快的一种方式,所以先找项目的统一对外出口,不然直接看内部的逻辑,是会发懵的,比如从一个controller开始看起,就知道了这个项目对外提供的是什么模块,什么功能。方便我们去理解。
盘数据流
有了入口之后,其实我们已经大概知道该系统提供的能力是什么。在通过入口进行再深一层的看,就知道数据的流向是什么情况,在这个过程中,其实可以初步梳理出一个功能整体的系统交互和数据流向。这也是最耗时间的一个环节。
盘核心和易出问题的点
我们一个大项目会有很多项目,如果挨个都看,不分优先级的去看,是很耗费时间和精力的,所以按照核心应用开始,以及找出平时容易出问题的点的应用,这种的收益是最大的。时间是宝贵的,我们也应该从这方面来进行熟悉。
盘细节
细节就不用说了,有了上面的这些铺垫之后,接下来要做的就是一个模块一个模块的整体的代码逻辑梳理,切忌每一行代码都看,要看核心的,简单的地方,了解数据流的大概即可。这样我们可以快速熟悉项目。