如何阅读自己不熟悉的代码模块(主要针对偏大型项目)

通过近期的工作和学习实践,梳理一下自己在阅读一份不熟悉的代码模块的时候的执行步骤,算是做一个方法的总结吧。

 

第一步:明确这部分代码模块的职责是什么,设计目的是什么

不管是阅读源码还是接手前人代码,首先要明确,想要了解的这部分代码他的作用是什么

如果一开始完全没有接触过类似的模块,心里没有对这个模块的一个大致的概念,

那首先要做的是先去查资料,查文档,看论坛,找相关的文章去学习了解这方面的知识,对这个模块建立一个概念认知以及大致的对象拆分,拿mmo的技能模块为例,我开始完全不知道要如何去构建一个健壮的技能系统,对类如何进行拆分,通过查阅资料大致建立起了一个抽象的认知。

当明确了你想要了解的这个模块主题是要做什么的时候,也就是相当于给自己设定了一个目标,后面的步骤就都是为了去实现这个目标而做的了。

 

第二步:跑流程,看效果

还是以mmo游戏的技能模块为例,通过实际跑游戏,去了解不同类型的技能,具体的表现到底是什么样子的,建立一个具体的效果认知,比如瞬移技能,冲锋技能,钩子技能在游戏内实际的表现是什么样子的,他的生命周期可能是什么样子的,从哪开始,从哪结束的

 

第三步:断点调试

通过第二步的实际跑流程,基本可以对某个效果的起点和终点有一个了解,比如一个技能的释放起点可能是你按了UI上的一个按钮,终点可能是最终释放掉这个技能对象,这中间可能会有伤害计算,特效展示,运动控制,动画播放等一系列的子过程,选一个你想要了解的过程,一步一步跟着走下去,实际去了解代码的执行步骤,每个判定条件,每个控制参数的改变,只有了解了这些细节,才能真正的理解这个模块的原理和设计思路

 

第四步:尝试用类图去理清抽象关系

断点调试帮助我们深入实现细节和执行流程细节,但是如果不建立一个宏观的关系图去把某个过程中的各个概念抽象出来的话,如果代码量庞大,逻辑复杂的话,很有可能看着看着就看晕了

所以在进行第三步的时候也可以同步进行第四步,就是在调试的过程中去把各个类的类图都画出来,一步步理清类和类之间的关系,进而完善自己对全局模块的认知。

后面如果遇到实际的需求或者想要了解某个细节的点是怎么实现的时候,再对一些具体的实现算法进行分析就好。

 

基本上通过以上四步之后,对一个陌生的模块代码就会有一个相对清晰的认识了。

在建立了足够的认识之后就可以进行下一步思考

现有的这个模块的代码有哪些地方可以进行改进?

如果是自己去实现这个模块的话,我要怎么做?

带着这俩个问题继续下去,才可以真正的从理解变成会做,把这部分知识变成自己的。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值