源码实现 - 多读书,读好书 #
学习也有不同的阶段 - 了解,知道,会。 通过别人的讲解,我听明白了,就可以说了解了。 不仅听懂了,还能复述出来,这就是知道。 不仅知道,我还能动手实践,并且结果还不错,那就是会了。
拿写作举例。 通过看介绍写作的文章,能了解到,原来写作就是将自己的想法记录下来,这就了解了写作是怎么一回事。 经过思考总结,能够将刚才的文章复述出来,并且可以给别人解释写作是怎么一回事了,也就是知道了。 按照理解,开始动手实践了,还完整的表达了自己的想法,也就可以说会写作了。
源码学习也是一样。 希望自己能够通过读源码的方式,了解优秀开源项目是怎么工作的,知道其中的原理,并且将吸取的知识转换成实际动手的能力。
所有人都知道要多读书,尤其是好书。 优秀源码就像好书,那么多优秀的开源项目就躺在那,触手可及,可为什么读的人却不多呢?
我觉得主要原因有以下两点:
- 代码量巨大,不知从何下手。好的开源项目通常都很庞大,没有人领进门,全靠自己,难度不小。
- 编程语言设计的初衷是用来写的,并不是用来读的。 人类自然语言主要是用来交流,用在人和人之间。 而编程语言则是用在人和机器之间,工程师将自己的想法按计算机能懂的代码表达出来,让机器完成我们下达的指令。
探索步骤
为了让自己能更好掌握站点领域中Hugo的知识,我准备采用以下步骤对Hugo源码进行学习,以达到会的目的:
- 跬步千里。以可运行源码为基础,分块学习,专注在当前模块,减少知识负载,并可以通过源码实时验证自己的猜想。
- 了然于胸。用时序图将源码一层层展开,理解实现流程和设计细节。
- 抽象总结。用祖师爷冯诺依曼架构 - Input -> [?] -> Output,来对实现思路想进行总结,进一步帮助理解和总结。
- 动手实践。图示关键设计点,掌握精髓。用源码解释源码,对基础知识进行阐述,夯实基础。