背景
“EP”(中文:工程生产力)是目前项目中提升研发能力的一个很重要的衡量指标。笔者重点学习了Chromium产品是如何从代码和设计层面来保证快速高效的工程生产力。本文就是基于此背影下关于Chromium的设计模式的一部分总结。
Chromium中模块分层和进程模型
任何好的架构就要做到模块之间高内聚,低耦合,并符合SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)的设计原则。Chromium作为一个优秀的开源工程,我们一起来看下其架构的主要特点。
Chromium作为一个优秀的开源工程,其架构特征最明显的模块分层和采用了多进程的模型,这样就可以解决模块依赖问题,不断的发展高内聚、低耦合的层次和组件,并且使用DEPS(代码管理工具)进行保障。其基本的设计原则就是底层模块不能依赖高层模块,但是可以调用他们的接口API。
1 模块分层
Chromium被分成了三部分:Browser,Renderer和Webkit。其中Browser是主进程,代表了所有的UI和I/O。Renderer就是浏览器里面每个tab的子进程。Renderer内嵌Webkit做渲染和布局。(进程模型可参考1.2部分和Chromium官方文档)。
下面图是官方的模块层级图:
下图就是简化版本的模块层级图:
其中Content仅负责加载网页的核心代码提供WebPlatformFe