剖析Mozilla代码之”七武器”

武器一:穿甲弹 Source Insight
网站:   http://www.sourceinsight.com/
Source Insight 工具是分析源代码工程的利器! 有了它,再多的源代码文件也不怕,它能帮助你像使用Visual Studio 一样去"go to definition"、"Find References"。Source Insight的语法提示,比IDE做得都帅,有了它可以帮助你用最快速度了解源代码文件、目录之间的关系。 真不愧为杀入敌营的攻坚利器。

武器二:突击步枪AK47 Editplus
网站:http://www.editplus.com/
轻量级的文本编辑器是程序员的必备武器,就好比士兵手上的突击步枪。程序员对文本编辑器的要求和士兵对枪的要求差不多:1) 非常好用(缩进、语法加亮);2) 结实耐用(不崩溃);3) 轻便(功能精炼而有效);现在文本编辑器有很多: Ultra Edit、Notepad++、Editplus 等等不胜枚举。然而,Ultra Edit 许可超贵;Notepad++的作者据说又支持台独;我选择Editplus的原因是因为作者非常厚道,试用到期后,仅仅是在启动Editplus时提示一下,功能不打折。另一个原因是Editplus有自动保存功能,在保存当前内容时,修改前的内容也自动保存为 文件名.bak 文件,让你丝毫不必担心代码改错了,该怎么办的问题。

武器三:后勤保障车 Cygwin
网站: http://www.cygwin.com
Mozilla 与 Webkit 等开源项目一样,都支持多平台。在Windows下编译支持多平台的代码,就全靠Cygwin这位老兄了。Cygwin 是在Windows 平台下的UNIX环境模拟器。 除了带有UNIX的SHell之外,还有perl、gcc、gzip、7z等无数工具,简直是要啥有啥。编译Mozilla项目就全靠它了。兵马未动,粮草先行。编译Mozilla项目(不管是Firefox还是seamonkey)Cygwin 都是要先安装的。

武器四:望远镜 DebugView
网站:http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
要知道,Mozilla 工程是没办法断点调试的,用惯了Visual Studio 的兄弟们肯定傻眼。为了能够跟踪程序执行的路径、变量的值,判断我们修改的代码是否运行良好,就只能依靠OutputDebugString输出了。 通过DebugView,我们就能对OutputDebugString输出的结果一览无余。知己知彼百战不殆。观敌瞭阵,没有望远镜还真是不行!
武器五:  手雷 Mozilla-build
网站: http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.4.exe
Mozilla-Build 是集成了第三方Lib、Shell 脚本、Nsis安装程序 等一体化的工具包。是Mozilla专为战场设计的轻型、大威力的武器。有了它,就不必在网上四处寻找、编译第三方的函数工程库了。我最喜欢的是他的Windows Shell批处理,点一下就把环境变量都设置好了,非常方便。Mozilla-Build在我编译时省去了我很多麻烦事儿。

武器六:装甲运兵车 Visual Studio
网站: http://www.microsoft.com/vs
Visual Studio 在熟悉不过了,它在战场上也发挥着不可比拟的作用。为 Mozilla 编写 XPCOM组件,测试局部代码,都得靠Visual Studio。配合上Mozilla 发布的 Gecko SDK,越过这些小沟小坎易如反掌。 我在Mozilla 项目的源代码中也发现了一定数量的用Visual C++ MFC编写的测试代码。Visual Studio的易用性是公认的。

武器七: 兵书 《Programming Firefox》
网站:http://rapidshare.com/files/53641720/Programming_Firefox.rar
XUL技术是Mozilla 通过XML 和JavaScript 实现界面定制的技术。通过XUL可以为Firefox、Seamonkey等应用程序生成功能强大、灵活的界面。同时,XUL也可以被单独编译,放入我们自己的应用程序中。这本书详细介绍了Mozilla 的 XUL 技术,通过XUL技术可以轻松编写Firefox Extension。著名的Firefox Web Developer extension 就是基于XUL技术实现的。

有了这七件武器,分析、改写Mozilla 代码就非常轻松了。

注:
Mozilla 项目 是由Mozilla 基金会全面掌管的。Mozilla项目由基金会旗下全资子公司Mozilla公司进行代码编写、市场开发等工作。Mozilla 项目包含很多应用程序:
Firefox  Web浏览器
Fennec  Mobile嵌入式浏览器
Thunderbird 邮件客户端
SeaMonkey 浏览器与邮件客户端以及其他Web工具的合体

发表评论