![](https://csdnimg.cn/release/download_crawler_static/5057769/bg5.jpg)
5 / 23
上穷碧落下黄泉-源码追踪经验谈
2. 需要对某些 open source 进行改写以量身订制专用版本。这种情况最常见于 Linux
和 GCC。完全是一种职场工作,压力很大,动机超强,成功率高。但有时间压力,很难完
善其说明文件;往往在项目结束后一段时间内,对如此大规模源码的精神和实际面掌握度渐
次消褪,最后烟消云散,只留下一丝丝模糊概念。
3. 向往华山论剑高手招式,希望学习名家风范,对技术有强烈的追求欲望。完全不是
工作,只是一种学习。积极进取的学生可能是这一类。自由的时间加上学习的天赋使命,使
学生时代成为剖析名家源码的最佳时期,但年轻时期就具备足够基础与心性的人不很多。
4. 工作之外偶而发心 — 毕竟探看核心企求醍醐灌顶是每个科技人心中蜇居的渴
望。由于本职工作的压力,这一类型通常难以持久。
大系统源码 都十分庞大,值 得剖析( 根据 我的价值 判断 )的最小 规模 ,大约 是
C++Standard Library。说它最 小,你不妨亲 自看看有 多大( 就在你的 C++ 编译程序
的 ”INCLUDE” 目录中)。因此,没有强烈动机和缜密而系统化的措施,很难获得真正有用
的成果。半途而废太可惜了,所以要嘛就下决心做到相当程度,有具体成果才罢手,要嘛干
脆别动,把时间拿去看恐龙展、拿破仑展、三星堆文物展、罗浮名画展,或是和异性朋友培
养感情,更有价值。
对象
取得名家源码的机会很多。open source 不必说了,网络上可以自由下载;其他诸如
classes library, framework„,多半采取白盒策略,也对使用者开放源码(这里所说的开放源
码,和一般所谓的 open source 不同。前者只是将程序以源码型式释出,让使用者得以观
察研究,或修改后用于自家产品。后者允许使用者在某种授权(例如 GPL, General Public
License)之 下做任意用途。)。许多网络社群组织也大方开放他们的成果。琳琅满目的货架上,
什么才是值得一探的宝贝呢?剖析源码,时间与精力的投注很大,如果抱持「放进篮里都是
菜」的心态,一旦遇人不淑损失可就大了(别说你有的是时间)。
我个人认为,只有价值被百分之百认定的大型卓越作品,才值得剖析它,从中吸取深层
技术养份。一样米还养百样人,哪来被百分百认定的大型卓越作品?唔,我说的是被你百分
百认定,不是被百分之百的人认定。至于你认定错误,所学非人,虚掷岁月,那是你眼力差,
调查不足,怨不得人。
前提
剖析源码,并非学习语言的好方法 — 虽然你或许可以学到很好的语言运用。剖析源
码,也不是初学 OO 的好路线 — 虽然你或许可以学到很好的 OO 概念和实作。要知道,
你现在是单骑入风尘,飘飘无所依,迎面扑来的是成千上万如蝗虫如夏蚊的程序代码。剖析
一样东西,必须先对它有一定程度的了解。假设你想剖析 MFC,为什么会有这样的念头?