背景
前段时间阅读公司一个产品的代码,看了一两天当我需要定位问题的时候还是不知道如何入手。但从我触发的动作入手进行跟踪,对这个项目做了些什么事情有了更深的了解。
几个心理认知
1.阅读源代码是为了弄清楚这个项目,在由问题的时候能够大致定位到出现问题的地方。
2.在必要的地方调试出结果,因为阅读代码时间长了会很疲劳容易产生自己看懂了错觉。
信息的角度上谈看代码
代码是在运行时候传递的是信息。
看代码时候对以下观念敏感或者心中有数会让我少接入低效的状态。
1.谁触发这个代码的,有计算机触发(定时任务),有页面人工触发。
2.信息的处理方式是同步的还是异步的,比如你在eclipse按call hierarchy显示的是代码主动调用这样很容易跟踪跟踪下去。如果是异步的你需要从新另起一个触发源头来跟踪代码。
3.信息的变化有 传递、汇总、取大小值。我以前开始看代码对汇总,大小值这些不太敏感,但是从整个逻辑的角度是很大区别,所以看代码的时候这些变换一定要注意。
代码与信息的关系
我们脑子里有概念,然后通过代码来具体实现。而代码运行起来会有很多种情况,在这里就表现为很多信息特征。
从抽象与具体的关系可以说:概念 -> 代码 -> 运行信息。
越是抽象需要描述他的文字就越少,从系统角度也可以说概念里包含了很多代码子系统通过代码子系统来实现(当然这个是人来实现的)。
代码是运行时信息的抽象,一个代码运行起来可能有很多路径,这样只能捕捉特定运行时具体信息。
写在后面的话
写得很抽象但这是我这段时间阅读源代码的思考,以后有新的想法会在这基础上增加。