【转】Mozilla研究—深入理解mozilla所需的背景知识
来源:互联网 发布:连接数据库的软件 编辑:程序博客网 时间:2024/06/03 23:59
原文链接:Mozilla研究—深入理解mozilla所需的背景知识
Mozilla非常庞大,据说有数百万行的代码。逐行理解所有代码是不可能的(也没有必要),不过要理解它的架构,以便充分利用它的功能是可能的。Mozilla涉及的技术比较多,如果不理解这些技术,阅读它的代码和文档可不是件容易的事。这里列出一些主要的背景知识:
1. C++/JS。mozilla使用的开发语言主要有C++和JS。C++用来开发核心代码,而JS只是用来胶合用户界面(XUL)和核心代码的。C++所占比例非常大,所以不熟悉C++就不可能理解mozilla。C++本身比较复杂,幸好mozilla考虑到可移植性等问题,除了模板外,没有使用如异常和运行时类型识别等高级特性。
2. HTML/XML。HTML浏览器是mozilla的中心项目,自然HTML的浏览和编辑是mozilla的核心之一,了解相关HTML相关知识可以减少理解mozilla的障碍。另外mozilla中大量使用了XML,XML只是语法级的规范(与语义无法),光了解XML还不够,还要了解像XBL、XUL、SVG、XSLT和SMIL等更专用的规范,尤其是XUL和XBL。
3. DOM(Document Object Model)。Mozilla为W
4. XPCOM(Cross Platform Component Object Model)。微软的COM(Component Object Model)只是针对Windows的,而XPCOM则是跨平台的,除此之外两者也并不完全相同,不过如果熟悉MS COM,再理解XPCOM就容易多了。XPCOM是mozilla的核心架构,它所有的组件都是基于XPCOM的,不理解XPCOM就不可能理解mozilla。我认为《COM本质论》是介绍COM最好的教材,特别是前面几章写非常精辟的,不可不读。
5.网络协议。Mozilla中所有的项目差不多都与网络有关,里面涉及的协议,除了SSL外,都是应用级的协议,比如HTTP、FTP、SMTP、POP3和IMAP等等。不必清楚这些协议的所有细节,知道其功能和主要内容即可。
6. GUI。跨平台是Mozilla一直努力的目标,而GUI是跨平台的最大障碍之一,mozilla为此下了很大功夫,这部分代码占有相当大的比例。所幸各种GUI都大同小异,如果熟悉一种或多种GUI系统,理解这块不成问题。
7.编译原理。所有语言的解析都要用到编译原理的知识,mozilla中要解析HTML和所有XML格式的文件,自然离不开编译原理。熟悉编译原理中的词法分析和语法分析,对理解mozilla会有不小的帮助。
- 【转】Mozilla研究—深入理解mozilla所需的背景知识
- Mozilla研究—深入理解mozilla所需的背景知识
- Mozilla研究—深入理解mozilla所需的背景知识
- 深入理解mozilla所需的背景知识
- 深入理解mozilla所需的背景知识
- Mozilla研究—mozilla的目录结构
- 【转】Mozilla研究—mozilla中的设计亮点
- 【转】Mozilla研究—mozilla能为我们做什么
- Mozilla研究—mozilla中的设计亮点
- Mozilla研究—组件的创建过程
- Mozilla研究—minimo的本地化
- Mozilla研究—用户界面的基本要素
- Mozilla研究—minimo的本地化
- 【转】Mozilla研究—组件加载机制
- Mozilla研究—传输协议
- Mozilla研究—图片显示
- Mozilla研究—mozilla能为我们做什么
- Mozilla
- C++ Exercises(十三)
- C++ Exercises(十二)
- 【转】Mozilla研究—组件加载机制
- 【转】Mozilla研究—mozilla中的设计亮点
- 【转】Mozilla研究—mozilla能为我们做什么
- 【转】Mozilla研究—深入理解mozilla所需的背景知识
- 【转】Mozilla研究—XPCOM语言无关性的实现原理
- 基于Mozilla ThunderBird的扩展开发(三)---如何获取邮件的完整信息
- Java并发笔记(一)
- C++ Exercises(十一)
- 【转】应用Mozilla框架的感受
- 基于Mozilla平台的扩展开发(续)----XPCOM组件篇
- 浅谈基于Mozilla ThunderBird的扩展开发
- Windows下编译Enigmail源代码