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

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

 

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

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

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

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

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

 

第二步:跑流程,看效果

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

 

第三步:断点调试

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

 

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

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

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

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

 

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

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

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

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

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要快速阅读熟悉一个项目代码流程和思想,可以按照以下步骤进行: 1. 了解项目结构:首先,浏览项目的目录结构和文件组织。查看项目中的主要文件夹、模块以及它们之间的关系。这将帮助您获得对整个项目的高级概览。 2. 查看项目文档:如果项目有相关的文档或说明文件,先阅读这些文档。文档通常包含项目的整体架构、设计思路、关键组件和模块的介绍等信息。 3. 阅读入口代码:找到项目中的入口代码,如主函数或启动类。从这里开始阅读代码,跟踪执行流程。了解代码是如何被调用和执行的,这将帮助您理解整个项目的控制流程。 4. 浏览重要模块和类:选择一些关键性的模块或类,优先阅读它们的代码。这些模块通常是实现核心功能或核心思想的关键部分。通过仔细阅读这些代码,您可以更好地理解项目的核心逻辑。 5. 跟踪代码调用关系:使用IDE工具提供的代码导航功能,跟踪代码之间的调用关系。查看方法之间的调用链,了解各个组件之间的交互关系。这将帮助您理解项目的整体结构和数据流动。 6. 阅读注释和文档:在代码中查找注释和文档,特别是对于复杂或关键的部分。注释通常提供有关代码功能、设计决策或注意事项的重要信息。 7. 运行和调试代码:尝试在本地环境中运行项目,并使用调试工具进行调试。通过实际运行和调试代码,您可以更好地理解代码的行为和数据的流动。 8. 参考外部资源:如果项目使用了特定的框架、库或技术,可以查阅相关的官方文档、教程或示例代码。这些资源可以提供更深入的理解和示例。 9. 与团队成员交流:如果可能,与项目的原始开发人员或其他团队成员进行交流。他们可以为您提供关于项目的详细信息、设计决策以及隐藏的陷阱等方面的洞察。 请注意,快速熟悉一个项目需要时间和经验。每个项目都有其独特的架构和设计,因此需要耐心和持续的学习才能完全理解。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值