最近跳槽去了另外一个公司。
公司让我在2个礼拜内熟悉代码,但是广告行业的代码绝对是复杂,特别是业务代码,读起来很费解。
我整理了几个步骤。
1.快速过一遍代码,从main函数开始。如果是一个server就从request到返回response整个过程快速过一遍。该过程时间不宜过长。可以通过添加注释的方式,在不懂的代码附近做个标志。
2.再次快速过一遍代码,该过程中需要将server中的几个重要过程都给梳理过来,此过程中不注重业务细节,主要是梳理框架。
在这里可以梳理一下使用的第三库,比如使用了boost的哪些库,是否有一些热更新库,配置文件库。也可以分析了服务的并发模型是多进程/多线程/协程。但不需要了解第三库的使用细节。
3.第三遍就是针对几个重要步骤进行细化查阅代码,这个过程中肯定出现很多业务细节,可以问同事。
4.如果是业务性代码,通过有大量的外部配置逻辑,有的是本地配置文件,词表。也有接入一些配置中心的,将这些配置代入代码中再次阅读。
这里面有一些比较重要的是,业务部分常常有大量废弃代码,或者实验没有删除。对于这部分代码,最好在一开始就剔除掉。另外对于有一些配置一定牢记住,比较开了哪几个端口,端口是啥,开了多少的线程/协程,各个环节的超时时间设置如何。
5.尝试编译代码。
可以进一步查看编译有几个bin,除了主server外,其它bin是干嘛,是否有能帮助你更好了解业务的bin,或者是以后调试的时候用得上的工具,不需要自己重复造轮子。
6.尝试请求服务接口,如果是http的就比较简单,但是如果是rpc服务,就自己写一写工具访问,因为你其实你以后肯定是需要类似调试工具的。