我们力推源码阅读,但是源码一定是缺失了很多信息的。
就像对三维物体照相(取二维切面),丢失了不少信息,但是认知可以勉强还原他原来是个什么东西。
看源码也是这样,最终别人的思考落下,也是思维到唯一解决方案的映射。
还好,这个映射因为带着精准的目的,我们可以推理出源码的逻辑。就像推理小说一样,本格推理会给予所有的信息,同时凶手也不是随机杀人,随机性的映射我们没有逆推的可能。
所以源码阅读,确实要看他写了什么源码,但是源码里没写的更加重要。
比如,看到一个实现或者数据结构的设计的时候,思考我还可以怎么做,会发现其实也可以这么做或者不能。很大的可能是,你在看到了相关联的模块的时候发现前面的思考是:“原来不得不这么做。”这就是带着问题思考的妙处。
当然,很多信息推理和猜测,会有偏颇,但是,当你带着问题去阅读的时候,你会收获非常多。