为了装万恶的管理软件Project,我的VS.net被破坏了,导致某志今天下午无法进行工作,于是下了本书,《上穷碧落下黄泉–源码追踪经验谈》侯捷写的。

因为游戏引擎本身就算的上是一种比较大的项目,代码也比较多(我们公司的引擎代码大约20W行左右),对于源码阅读,追踪能力还是有比较高的要求的,阅读此书有不少收获。

下面是记录:

1:动机。大型项目代码动辄数万行,如果没有强烈动机和慎密而系统化的措施,很难获得有用的成果,若半途而废,倒不如干脆别动,把时间拿去和朋友培养感情更有价值。

2:对象。现在名家源码很多,网络上也有大量OpenSource下载,当你准备剖析源码时,将消耗大量精力,如果你不寻找正确的对象,实在不值得。所以个人认为,只有价值被百分之百被肯定的大型卓越产品,才值得剖析它,从中找到技术成分。

3:前提。剖析源码,你必须先了解他,例如MFC,假设你要剖析它,那么你不先写几个MFC应用程式来了解它,实在不适合贸然对它进行剖析—森林审处是有很多沼泽和蚊子的。同样道理,学习游戏引擎之前,请务必对它进行简单的了解和使用。

4:态度。剖析源码是一件大而艰巨的工程,心理素质不好的人不要尝试。没有坚强信念,没有适当的工具和方法,你必定是失败。

5:工具。侯捷推荐了一款grep的工具,个人不喜欢用,毕竟命令行形式的玩意很让人难受。我准备用一个SourceInsight的玩意,用它进行搜索还是很不错的。

6:笔记。当你灵光乍现找到线索的时候,一定要进行记录,所以请随手准备一个能够记录的工具,一个是Word,一个是Visio(注:这俩工具非侯捷推荐,属于个人理解)

7:瓶颈。当你由于技术原因遇到瓶颈,应当先抛开代码,寻找你技术上的不足,将它理解掉。例如你看STL,不懂红黑树,则一定看不懂set,此时你应当放下STL源码,去学习红黑树的原理。

最后,能讀千賦則善賦,能觀千劍則曉劍,巧者不過習者之門也。做为优秀程序员,必须大量阅读源码。

请将您的知识共享。