如何分析源码 (一)

如何分析源码

一、系统

  1. 先要会用,要搞清楚整个功能。
  • 直接看示例文件
  1. 根据使用的API入手
  • 看看有什么属性,分析他实现的步骤及猜测
  • 确定功能相关数据结构
  1. 查看模块的划分,猜测其每个系统的功能。建立宏观视角,不要直接陷进代码中,否则会花很长时间。
  2. 序列化:反射显示、存储、数据->对象序列化
  3. 根据模块去查看示例代码,并实现的效果记录
  4. Utils : 一般都是一些工具方法,是直接可以从他的项目中拿到你的项目中使用的,我们可以去积累这样的utils。
  5. XXXhellp:都是一些涉及了框架相关API的工具方法。
  6. 一般来说,有生命周期的脚本都是作为子脚本,类似mono的那种,有start方法之类的。
  7. 把继承结构搞出来,UML图,如果时间够的话。
  8. 看源码是为了学习一下基础,看看他的架构,学习一下思路之类的

二、继承结构、协作流程

  1. 查看入口、查看框架启动器
  2. 不用追的太深入找到最主要的核心方法。
  3. 不管这个框架是做什么的,都需要unity的API,我们可以根据它使用的API来寻找线索。
  4. 根据类名、方法名来判断这个方法是做什么的。
  5. 属性标记(方法或者类上面的方括号里面的东西叫属性),可以用于反射来创建或者获取、注册添加等等一系列的操作。 属性:标记方法或者类 使用反射调用可得到。一般配合消息系统或者方法注册机一并注册等。 也可以方法过滤,保留特定的方法,将其赋给某个委托。 在某个特定的时间:比如ongui时,遍历委托集合,调用。

三、流程

  1. 先去用
  2. 猜测,主动地猜测,不要一脸茫然的
  3. 大概猜一下原理
  4. 按照系统/功能划分一下模块
  5. 找到核心的模块,不断地问自己,如果要我实现插件,我要怎么做。
  6. 不要乱,要有一个结构图,很容易把自己弄糊涂。
  7. 不用看懂代码,知道最主干的东西是什么就行。
  8. 搞一下集成结构
  9. 搞一下协作流程-初始化流程等

四、细节问题

  1. 猜测、画图等
  2. 用组合模式等实现继承方法,例如:动物类有3个子类:鸡、鸭、鹅,他们都有方法叫吃。动物园是管理所有的动物,有一个喂食的方法,调用了喂食的方法,就调用所有动物的吃的方法。兄弟这个贼形象。

初学者须知

  1. 多看看书本上的知识
  2. 多看看博客什么的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值