别人的代码,特别是一些引擎方面的东西。有时候比较的深奥,如果没有一个比较良好的查看别人代码的方法可能会比较吃力,而且效率也会很低下! 在此总结一下查看代码的技巧!
1: 查找代码的核心!
一般都是寻找真个代码的主线程,如果是单线程那么这个就很简单了。根据线程执行的顺序基本上就可以理清楚整个代码的内容了! 在此不在说明 。 这里说的代码的核心是指多个线程方面的! 那么就要明白,线程在哪里启动的! 与其他线程是怎么互相配合工作的!比如说 :网络游戏中一般都会存在两个或者以上的线程 (游戏的主线程 ,网络线程 ,当然你也可以设计成一个线程)
2: 精简代码
把那些暂时不需要关心的代码注释起来。或者在另外建立一个工程 ,把需要的代码一步一步的复制上去! 精简的时候就最好要把主线程的东西不要精简了
3:使用debug来找出主线程
这个可以按照自己现在关系的那个功能模块来执行。比如当你关心 ,玩家的移动那一个功能的时候 你可以把断点打到移动的那个方法出,然后查看堆栈。这样基本上就可以找出线程了。而且其他的功能模块也会顺藤摸瓜的出来了!
4: 要舍得先放弃
当查看别人代码的时候可以先大致的了解一下某个方法的作用是什么! 没必要去深入了解每个方法里面每个变量的作用(如果那样的话你可能要花很长的时间才能够明白别人所写的东西) 这里有个技巧就是,如果方法有返回值,那么直接看返回值基本上就可以明白这个方法到底要干什么。比如 : 在一个pos move()这样的方法原型中我们很明白这个方法是返回的pos这个值。如果这个方法并没有返回值。那么这个方法肯定是修改了全局变量中的值! 这个时候就要小心了! 因为全局变量有很多地方可能会用到, 你必须查看这个全局变量使用的那些地方(这也是为什么thinking in java 中并不主张使用这种方法来修改全局变量,这样会使code难以理解)
5: 如果你记忆力没有那么超群的话建议在看的时候拿一支笔和一张纸,记下某些关键的地方。关键的引用等等!