当我们追踪源码时,要追踪到什么程度?
源码追踪,是所有开发工程师要迈出的一道门槛。不会源码追踪,或者不习惯于研究出色开源组件的源码,注定会限制自己的成长,也无法广泛借鉴更多的编程技巧和工程思想。不会追踪源码,就像是不会识字的文盲,没办法在海量的知识海洋中遨游与成长。
前两天看到一篇知乎热文:你都有哪些面试时被虐的经历?》,以极其幽默的方式描述了在技术上被蹂躏的过程。究其原因,毫无疑问是基础不牢固。但为什么会基础不牢固?无非就是在研究、钻研技术时,没有打破砂锅问到底。但我们可以进一步细问,什么叫做打破砂锅问到底?要问到什么程度才叫做到底了?
这几乎就等价于,当你追踪源码时,到底要追踪到什么程度?是追踪到你当前所用框架的实现工具层?还是要追踪到系统API调用层?又或是追踪到你语言本身的实现层次?哪里是个尽头?应该到哪里才是尽头?
回顾上面那篇知乎热文,其实有很多可以琢磨的细节。如果完全以虚心学习的态度来讲,面对拷问细节的面试官,当然是要承认自己实力的不足,知耻而后勇地努力学习。但如果从另一个角度去思考,会体现出一些非常无奈的事实:我自己的工作中就用到这个程度,为什么要问到如此细节?好不容易看了一下这个feature的实现,知道调用了系统底层的某个函数,你偏偏要问,那个系统函数是如何实现的。好不容易知道那个系统函数的实现思路,你非要问,在语言层面是什么特性保证了该实现的合理性。
如此种种,到底何时是个头?我到底应该追踪源码追踪到哪里才算是一个尽头?不是我不想打破砂锅问到底,而是,要......
阅读全文