google chrome浏览器的源代码是非常庞大的,为了较快的进入学习状态,有必要事先对一些知识点进行说明,这里不是要详细说明里面的细节,而是从概念层次阐明一些注意事项。这里谈到的东西也不一定说非要事先把这些东西搞得很明白才能去学习源代码,主要还是先给大家一个心理准备。当然如果你最终要在细粒度的层次掌握源代码细节,那么这些知识点必须非常清楚,不过这可以结合源代码的时候再针对性的来澄清这些知识点。
由于chrome源代码包含方方面面的技术非常之多,根据个人喜好可能针对性的对某些技术感兴趣,那么可以针对性的进行学习。大的原则是理论和实践相结合,chrome包含的代码就是各种规范、理论的具体实践实现。
基础知识
基础知识是任何技术方面都应该掌握的领域无关的通用知识。我认为主要包括“语言基础”和“系统基础”两大类。
语言基础知识
整个chrome源代码包括webkit内核、v8引擎全部用c++语言编写。那么作为语言基础的c++语言就必须是精通的水平才可能流畅的看明白里面的代码。我一直认为c++是有史以来最复杂的语言(可参考孟岩文章关于C++复杂性的零碎思考),是典型的魔幻语言,我曾经也痴迷去深究c++一些高级技巧,后来某天突然发现这种深究、这种玩法除了增加理解上的复杂性,对实际问题似乎并没有带来任何好处。后来看到一篇文章(请看孟岩文章Ruby 1.9不会杀死Python),才明白原来自己的性格是喜欢简约风格的语言,从