阅读代码的一些方法小结

教员曾说:“伤其10指不如断其一指。” 阅读代码又何尝不是如此?事情有其完整性最低要求。

阅读代码有如盲人摸象。一开始总是不全面,可能只读了一小部分,其它的地方如同迷雾,处于一知半解的状态是非常正常合理。

最近我在看一个代码比较复杂,好吧,其实是个已经2年了的门外汉。

1. 首先应该对其设计思路,工作原理有一个理论上抽象的了解。做到这一步,其实人还是虚的,没有落地的踏实感,遇到问题也会没谱。毕竟原理上的几句话就能讲明白。但是,这个原理是不是符合实际?有没有例外? 这些都需要实际验证。

如果有官方文档,建议看看,真的,官方文档就是核心设计思路,不会错。一般都是设计者写的。设计意图准确度是很高的。

2. 加log或者trace,跟踪行为流程其实是比较快的学习方法。这个做起来收益大,但是有一个问题,加在哪个funtion才是对的点。  有时候根本就不知道function name!比如有些函数是callback跳起来运行的。 这一步,我叫理论映射进实现。

3. 对行为流程有切实的掌握,知道关键函数点与数据结构后,我们可以进入到下一步。

画核心数据结构,结构体之间的引用关系。如果是面对对象的技术,就有类实例子类关系。

然后是核心接口API。这个图灵机C语言本身的特性,是设计本身到语言层面的具象化。

做到知道:

  1. 核心接口API, (代码本身要处理复杂性,最终导出的API不多的,是设计意图的表现)
  2. 核心数据结构,
  3. 行为核心function跟踪点。

4. 有了这3个东西,厚积薄发就可以做到,但是这个点,要加上把劲,趁热打铁,在投入时间,花时间重复理解几次,做到融会贯通。把一些疑点,也要梳理核实清楚,做到脑中流畅。一般来说,应该有种开窍,看得清楚明白之感,有代码就是自己设计并实现的感觉是个可参考的标准。然后所有的代码能归位,那些辅助性的,扩展性的代码也能清楚知道,自己要加要改也知道该如何。

再看设计文档,应该有流畅之感。

没错,时间成本挺高的,但是如此才能断其一指,彻底解决掉这个代码。

以上,便是近期的一些小结。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值