Contributing to Eclipse中文版
基本信息
- 原书名: Contributing to Eclipse
- 原出版社: Addison-Wesley
编辑推荐
大师级作者联手打造的Eclipse开山之作
Erich和Kent一起开发并维护着JUnit项目。两人最近合作的开源项目——Java Spider——是一个Eclipse插件,他们在本书中用这个工具来揭示复杂对象系统的结构。Erich和Kent最喜欢在瑞士阿尔卑斯山度过滑雪假期,并结对编程。
内容简介回到顶部↑
erich gamma是经典书籍《design patterns》的四位作者之一。他是eclipse的特邀提交者,并且是eclipsejava开发工具(jdt)项目的领导人。kent beck更加关注程序设计作为社会性行为的方面,作为一名顾问,他带领过很多高效的软件开发团队。[font color="#ff6600"]
本书为它的读者提供了以下内容:
·一个快速入门教程 在一个小时之内让你的第一个插件运行起来。
·测试驱动插件开发方法的简介 使读者充满自信地创建高质量的插件。
·ecilpse的社群法则 掌握这些法则,你的插件方可天衣无缝地与eclipse的其他部分结合。
·eclipse的设计模式之旅 带领读者浏览eclipse中的设计模式。
·一份全面的教材 读者可以在书中找到开发产品级插件所需的一切技术。[/font]
·在这本书中,erich gamma和kent beck对eclipse这个不断发展的软件开发环境,做了,陕速而透彻的介绍
·本书不是简单地告诉你“应该怎么做”,书中的正文和大量的补充、前行的路标将带领你一道真正投身eclipse的世界
·你不仅要做,更要理解。
·无论是想尽快上手开发插件,还是想更好地理解eclipse背后的设计理念,本书都是你最好的eclipse资源。
作译者回到顶部↑
本书提供作译者介绍
Erich Gamma 是经典书籍《Design Patterns》(Addison-Wesley,1995)的四位作者之一、在那本书中,他与无数读者分享了从软件的秩序与优美中获得的快乐。他是Eclipse的特邀提交者,并且是EclipseJava开发工具(JDT)项目的领导人。
Kent Beck更加关注程序设计作为社会性行为的方面,在这个领域,他最重要的著作是《Extreme Programming Explained:Embrace Change》(Addison-Wesley,2000) 作为一名顾问,他带领过很多高效的软件开发团队。
Erich和Kent一起开发并维护着JUnit项目 .. << 查看详细
Kent Beck更加关注程序设计作为社会性行为的方面,在这个领域,他最重要的著作是《Extreme Programming Explained:Embrace Change》(Addison-Wesley,2000) 作为一名顾问,他带领过很多高效的软件开发团队。
Erich和Kent一起开发并维护着JUnit项目 .. << 查看详细
目录回到顶部↑
译序:eclipse的meta-knowledge
序
前言
第1章 全景 1
1.1 本书的目标 3
1.2 插件 4
1.3 eclipse简介 4
第一篇 第零循环:hello world
第2章 为eclipse插件开发做好准备 9
2.1 设置工作区 9
2.2 源码的浏览和搜索 10
2.3 前行的路标 11
第3章 hello world 12
3.1 声明与实现的分离 13
3.2 hello按钮 14
3.3 向世界问好 20
3.4 前行的路标 26
第二篇 第一循环:基本的插件
第4章 我们的计划 29
4.1 例示junit 29
序
前言
第1章 全景 1
1.1 本书的目标 3
1.2 插件 4
1.3 eclipse简介 4
第一篇 第零循环:hello world
第2章 为eclipse插件开发做好准备 9
2.1 设置工作区 9
2.2 源码的浏览和搜索 10
2.3 前行的路标 11
第3章 hello world 12
3.1 声明与实现的分离 13
3.2 hello按钮 14
3.3 向世界问好 20
3.4 前行的路标 26
第二篇 第一循环:基本的插件
第4章 我们的计划 29
4.1 例示junit 29
译者序回到顶部↑
译序:Eclipse的Meta-Knowledge
在这个表达泛滥的年代,“meta-”前缀的构词法常常也属于被滥用之列。一个平凡的词汇加上“meta-”前缀,似乎就凭添了几分高深和神秘——例如我们熟悉的“metadata(元数据)”和不那么熟悉的“metaphysics(玄学)”。不过,尽管有落俗之嫌,我仍然愿意说:在你手上的这本《Contributing to Eclipse》,它介绍的恰好是关于Eclipse的meta-knowledge——那些“under the hood”的知识,那些支撑Eclipse世界的支柱。
大多数人对于Eclipse的了解是从Java IDE开始的。在这方面,Eclipse仅仅是一个流行的(甚至算不上最流行的)产品,学会使用它对于聪明的程序员也不是什么难事。与JBuilder、IDEA甚至Visual Studio们相比,Eclipse真正令人无法错认的特点在于它的插件机制。正如读者即将看到的,Eclipse采用了“微核心+插件”的体系结构,这使它在两方面对程序员具有难以抗拒的吸引力:其一,用户可以比较容易地开发自己的插件,实现自己需要的功能——实际上,Eclipse社群欢迎这种扩展;其二,这样的体系结构需要优雅而灵活的核心设计,于是Eclipse的核心代码就成了一个充满诱惑的设计宝库。由Erich Gamma和Kent Beck两位作者——实在无需再对这两位作者多加介绍了——为读者讲述插件开发的技术,阐释Eclipse的设计蓝图,本书提供的内容应该能吸引对Eclipse感兴趣的程序员。
然而,在我看来,这本书想要提供给它的读者的meta-knowledge,甚至还在“模式地图”的“后面”。当你翻开这本书的封面,首先映入你眼帘的就是一串“Eclipse家族法则”——贡献法则、遵循法则、共享法则、邀请法则……或许你要问了:“我只是对Eclipse的技术感兴趣,为什么要跟我讲Eclipse社群的工作方式?”那是因为,Eclipse不仅是一个技术高手们展现技艺的项目,它更是一个工业级的产品。全靠了这些“家族法则”,世界各地的开源程序员们才能如此成功地协作,开发出如此成功的产品。
Eclipse是一个开源项目。但和很多不明内情的人所想的不同,Eclipse使它的社群广泛地获得了利益——而且主要是经济上的。不用说IBM了,Clover、Clay、WindowBuilder等插件都为各自的公司带来了源源不断的利润。对于开源与商业之间的矛盾,本书的两位作者在“前言”的第一句话就让我们豁然开朗:“每个人都需要别人的关怀和帮助,每个人也同样需要关怀和帮助别人。”表面上看来,开源与商业是一对矛盾,其实它们之间的张力恰好是程序员职业的乐趣所在:我们可以用自己的代码赚钱,我们也可以用自己的代码去帮助别人。两者并不是矛盾,而是一种权衡。
软件开发也充满了各种各样的矛盾:灵活与效率的矛盾,松散耦合与紧密集成的矛盾,大型产品与微小核心的矛盾……软件开发的核心工作就是在这些矛盾之间权衡,在不同的设计方案之间权衡,在不同的特性之间权衡。从这个意义上,本书就显得更有价值:两位经验丰富的作者没有用更多的力气去深究Eclipse的所有细节,却常常不厌其详地比较几种备选方案的优劣,说明选择一种方案的理由。再加上那些“家族法则”(以及随处可见的旁注),Erich Gamma和Kent Beck将自己(以及Eclipse社群的其他贡献者)的工作方式、自己编程时的每个习惯和念头都呈现给了他们的读者。至少对于我来说,这些从字里行间渗透出的信息,才是本书最可宝贵的部分。即使我永远不再写任何与Eclipse相关的程序,这些成就了Eclipse的meta-knowledge对我的价值也将无可限量。
所以,对于书名中的“contribute”,我更愿意把它理解成“投身于……”:你不一定真正为社群贡献一个开源的插件,但Eclipse是一个充满乐趣与吸引力的世界,只要你投身其中、享受它的秩序与美,对于你自己和整个社群都将有所助益。而这本书就像两位作者在“前言”里所说的,就是带领你进入这个陌生世界的第一位导游。这位导游不会把美景逐一指给你看——有兴的游客自然会去观赏;他会陪在游客身边,跟游客聊起那些眼睛看不到的奇闻佚事。如果你当真有心领略这里的全部风光,我想你会喜欢这位导游,和他给你讲的那些故事——那些meta-knowledge。
致谢
在译序中感谢原作者,这看起来多少有些古怪。但无论如何,我应该感谢Erich Gamma先生和Kent Beck先生。两位作者总共解答了我14个问题,如果没有他们及时而热心的回信,这个译本的质量将大打折扣——而那将是我一个人的责任。所以,从某种意义上,是他们好心地帮我摆脱了这种尴尬境地,在此向他们表示最诚挚的谢意。
我还应该感谢中国电力出版社的编辑团队。“Eclipse”而又“Contributing”,这个书名就已经足以让国内大多数出版商退避三舍了。中国电力出版社多少有些理想主义地引进了这本书,才让我(和众多热心的读者们)有了一个机会。
现在,亲爱的读者,请做好准备,进入这次艰难而愉快的旅行吧。
在这个表达泛滥的年代,“meta-”前缀的构词法常常也属于被滥用之列。一个平凡的词汇加上“meta-”前缀,似乎就凭添了几分高深和神秘——例如我们熟悉的“metadata(元数据)”和不那么熟悉的“metaphysics(玄学)”。不过,尽管有落俗之嫌,我仍然愿意说:在你手上的这本《Contributing to Eclipse》,它介绍的恰好是关于Eclipse的meta-knowledge——那些“under the hood”的知识,那些支撑Eclipse世界的支柱。
大多数人对于Eclipse的了解是从Java IDE开始的。在这方面,Eclipse仅仅是一个流行的(甚至算不上最流行的)产品,学会使用它对于聪明的程序员也不是什么难事。与JBuilder、IDEA甚至Visual Studio们相比,Eclipse真正令人无法错认的特点在于它的插件机制。正如读者即将看到的,Eclipse采用了“微核心+插件”的体系结构,这使它在两方面对程序员具有难以抗拒的吸引力:其一,用户可以比较容易地开发自己的插件,实现自己需要的功能——实际上,Eclipse社群欢迎这种扩展;其二,这样的体系结构需要优雅而灵活的核心设计,于是Eclipse的核心代码就成了一个充满诱惑的设计宝库。由Erich Gamma和Kent Beck两位作者——实在无需再对这两位作者多加介绍了——为读者讲述插件开发的技术,阐释Eclipse的设计蓝图,本书提供的内容应该能吸引对Eclipse感兴趣的程序员。
然而,在我看来,这本书想要提供给它的读者的meta-knowledge,甚至还在“模式地图”的“后面”。当你翻开这本书的封面,首先映入你眼帘的就是一串“Eclipse家族法则”——贡献法则、遵循法则、共享法则、邀请法则……或许你要问了:“我只是对Eclipse的技术感兴趣,为什么要跟我讲Eclipse社群的工作方式?”那是因为,Eclipse不仅是一个技术高手们展现技艺的项目,它更是一个工业级的产品。全靠了这些“家族法则”,世界各地的开源程序员们才能如此成功地协作,开发出如此成功的产品。
Eclipse是一个开源项目。但和很多不明内情的人所想的不同,Eclipse使它的社群广泛地获得了利益——而且主要是经济上的。不用说IBM了,Clover、Clay、WindowBuilder等插件都为各自的公司带来了源源不断的利润。对于开源与商业之间的矛盾,本书的两位作者在“前言”的第一句话就让我们豁然开朗:“每个人都需要别人的关怀和帮助,每个人也同样需要关怀和帮助别人。”表面上看来,开源与商业是一对矛盾,其实它们之间的张力恰好是程序员职业的乐趣所在:我们可以用自己的代码赚钱,我们也可以用自己的代码去帮助别人。两者并不是矛盾,而是一种权衡。
软件开发也充满了各种各样的矛盾:灵活与效率的矛盾,松散耦合与紧密集成的矛盾,大型产品与微小核心的矛盾……软件开发的核心工作就是在这些矛盾之间权衡,在不同的设计方案之间权衡,在不同的特性之间权衡。从这个意义上,本书就显得更有价值:两位经验丰富的作者没有用更多的力气去深究Eclipse的所有细节,却常常不厌其详地比较几种备选方案的优劣,说明选择一种方案的理由。再加上那些“家族法则”(以及随处可见的旁注),Erich Gamma和Kent Beck将自己(以及Eclipse社群的其他贡献者)的工作方式、自己编程时的每个习惯和念头都呈现给了他们的读者。至少对于我来说,这些从字里行间渗透出的信息,才是本书最可宝贵的部分。即使我永远不再写任何与Eclipse相关的程序,这些成就了Eclipse的meta-knowledge对我的价值也将无可限量。
所以,对于书名中的“contribute”,我更愿意把它理解成“投身于……”:你不一定真正为社群贡献一个开源的插件,但Eclipse是一个充满乐趣与吸引力的世界,只要你投身其中、享受它的秩序与美,对于你自己和整个社群都将有所助益。而这本书就像两位作者在“前言”里所说的,就是带领你进入这个陌生世界的第一位导游。这位导游不会把美景逐一指给你看——有兴的游客自然会去观赏;他会陪在游客身边,跟游客聊起那些眼睛看不到的奇闻佚事。如果你当真有心领略这里的全部风光,我想你会喜欢这位导游,和他给你讲的那些故事——那些meta-knowledge。
致谢
在译序中感谢原作者,这看起来多少有些古怪。但无论如何,我应该感谢Erich Gamma先生和Kent Beck先生。两位作者总共解答了我14个问题,如果没有他们及时而热心的回信,这个译本的质量将大打折扣——而那将是我一个人的责任。所以,从某种意义上,是他们好心地帮我摆脱了这种尴尬境地,在此向他们表示最诚挚的谢意。
我还应该感谢中国电力出版社的编辑团队。“Eclipse”而又“Contributing”,这个书名就已经足以让国内大多数出版商退避三舍了。中国电力出版社多少有些理想主义地引进了这本书,才让我(和众多热心的读者们)有了一个机会。
现在,亲爱的读者,请做好准备,进入这次艰难而愉快的旅行吧。
前言回到顶部↑
每个人都需要别人的关怀和帮助,每个人也同样需要关怀和帮助别人。作为一名程序员翱翔在Eclipse的天空能够同时满足这两方面的需要,所以才会有那么多人乐此而不疲。当然,这里也有那些常见的宣传词,例如“提高生产力”、“紧跟市场”、“占据技术优势”——对于那些在其中工作的人,Eclipse是一个能够大幅提高生产力的环境,人们为Eclipse作出的贡献使它更臻完美;如果找到了合适的插件,产品上市的时间将大大提前,你将获得巨大的技术优势。但是,尽管这些都是事实,但它们都不是重点,它们都不足以解释:为何开发者们如此钟爱Eclipse。
我们喜欢在Eclipse环境中工作,是因为它给了我们无微不至的关怀:每当遇到编程问题时,总会有一项Eclipse功能帮助我们解决它。我们喜欢为Eclipse作出贡献,是因为做这件事给了我们助人的快乐——既是帮助自己,更是帮助别人。如果我们作出的贡献还为别人留下了发展的空间,使他们能够在此之上作出更多的贡献,一个正反馈循环就出现了,每个人都会在其中获得快乐。
“为Eclipse作贡献”甚至还可能成为一个精彩的商业计划——“贡献”并不表示你不能用你的成果赚钱。你可以在Eclipse基础上发布功能完备的产品,也可以发售针对现有产品的扩展插件。
Eclipse非常强大——不论从个人角度、专业角度还是社会角度来说都是如此。但是,要加入贡献者的圈子,你必须首先掌握大量的知识。我们希望本书能帮助你跨过这道门槛,开始为Eclipse作出贡献的旅程。
对于那些喜欢为别人编写开发工具的人来说,Eclipse既带来了好消息,也带来了坏消息。好消息是:Eclipse强大得令人难以置信,而且它的内部开发者都遵循创建Eclipse Java开发工具(JDT)时制订的那些准则,这使得它的结构清晰而优美。坏消息则是:Eclipse拥有一套完整的世界观,如果你希望在Eclipse的沙箱里玩得开心,就必须首先牢记它的准则。
打个不恰当的比方,初涉Eclipse的感觉多少有点像孤身一人在曼谷上空跳伞(这个比喻不适用于泰国程序员)。平安着陆之后,你需要食物和住所,但如何去得到呢?你应该如何利用身边的资源满足自己迫切的需要?
帮助你克服这种迷失感正是本书的首要目标。如果你和一名向导一起降落在曼谷,你就可以对他说:“我饿了。”而他会告诉你:“你可以在某地吃顿饭。”同样,如果你说:“我想实现这样一个功能。”本书会告诉你:“这应该是一个视角,那应该是一个Object Contribution,而那个功能则需要一个新的编辑器。”
即便读完本书,你还是无法获得Eclipse世界的完整地图,但对于任何基本的问题,你至少会知道一条解决的途径。你还会了解到一些准则,只有遵守它们,你才能和别人友好相处。这就好像我们为你画出一幅曼谷地图,在上面标出六条大街、一家饭店和一家宾馆。你无法从这张图上了解曼谷的一切,但靠着它已经足以在这个城市生存下来,足以开始了解更多的东西。
在学习Eclipse的过程中,你花在阅读代码上的时间会比编写代码多得多。你必须习惯于一天用六个小时读代码,再用一个小时写代码——你会发现这样的一天效率同样高得惊人。在习惯了Eclipse的文化之后,你会自然而然地“知道”如何解决越来越多的问题,但你同样会经常照搬其他方案的结构来解决类似的问题——可能是模仿Eclipse的结构,也可能是模仿你自己以前的解决方案。
当我们与你一道走进书中的范例时,我们不会装出一副无所不知的圣贤模样——实际上,我们也记不住所有的细节。不过,我们会告诉你如何找到可供模仿的结构。学会充分利用Eclipse的搜索工具,这也是成为Eclipse贡献者所必需的一项技能。
本书不是为想要学习使用Eclipse的初学者准备的,我们希望读者至少熟悉Eclipse的常用术语——视图、编辑器,凡此种种。使用Eclipse一段时间之后,你很可能产生对它进行扩展的想法,那时这本书就该派上用场了。
在筹备这本书时,我们发现可以讲的概念数不胜数。可是,如果我们把Eclipse所有的2000个知识点都写进去,恐怕就再也没人愿意看这本书了。为了留住你的目光,我们决定只介绍其中的50个知识点——对于刚迈进这个世界的你来说,这应该是最重要的50件事。在很多章节的最后,你可以找到我们为你准备的“前行的路标”。你可以跟随它的指引在代码中找到书中概念的延伸。实际上,在向别人传授Eclipse知识时,我们最常用的办法就是:“不妨去看看org.eclipse.core.runtime的源代码”。
有这么一个故事:有个博士生马上要进行答辩,答辩的主题是“果实”。可是时间已经太紧迫了,他只来得及去了解黄瓜这一种果实。答辩开始了,第一个问题是:“请谈谈你对西红柿的了解。”“你看,”他说道,“西红柿是一种果实——跟黄瓜一样。黄瓜含有80%的水分,它的表皮能抵挡病虫害,可以用黄瓜来做沙拉。”就这样,尽管他不了解别的果实,但他成功地把每个问题都扯到了黄瓜上面。
我们也了解黄瓜。除了Eclipse之外,我们还有两条“黄瓜”:模式和JUnit。所以,贯穿这本书的始终,你会不断发现类似于模式的建议——实际上,一开始写这本书的时候,我们总觉得有点不舒服,直到我们开始写下一些“法则”;有了“法则”的概念之后,我们的写作就进展得顺利多了。说到底,这些法则其实就是微型的模式。
JUnit——我们的第二条“黄瓜”——则是运行所有示例的基础。1997年,在去亚特兰大的飞机上,我们俩花了几个小时开发出了JUnit的第一个版本。从那以后,我们的整个技术生活几乎都围绕着它。对于本书中的示例代码,JUnit是一个最理想的运行环境:你可以非常方便地运行所有测试,并一目了然地看到结果。
但是,我们必须给你一个忠告:如果你已经听厌了模式和JUnit,也许这本书并不适合你。
格式约定
本书将使用如下的格式约定:
粗体——用于表示用户界面元素,例如菜单、按钮、标签、文本框等。
斜体 ——用于表示文件名和URL。另外,新出现的术语也用斜体字强调。
我们喜欢在Eclipse环境中工作,是因为它给了我们无微不至的关怀:每当遇到编程问题时,总会有一项Eclipse功能帮助我们解决它。我们喜欢为Eclipse作出贡献,是因为做这件事给了我们助人的快乐——既是帮助自己,更是帮助别人。如果我们作出的贡献还为别人留下了发展的空间,使他们能够在此之上作出更多的贡献,一个正反馈循环就出现了,每个人都会在其中获得快乐。
“为Eclipse作贡献”甚至还可能成为一个精彩的商业计划——“贡献”并不表示你不能用你的成果赚钱。你可以在Eclipse基础上发布功能完备的产品,也可以发售针对现有产品的扩展插件。
Eclipse非常强大——不论从个人角度、专业角度还是社会角度来说都是如此。但是,要加入贡献者的圈子,你必须首先掌握大量的知识。我们希望本书能帮助你跨过这道门槛,开始为Eclipse作出贡献的旅程。
对于那些喜欢为别人编写开发工具的人来说,Eclipse既带来了好消息,也带来了坏消息。好消息是:Eclipse强大得令人难以置信,而且它的内部开发者都遵循创建Eclipse Java开发工具(JDT)时制订的那些准则,这使得它的结构清晰而优美。坏消息则是:Eclipse拥有一套完整的世界观,如果你希望在Eclipse的沙箱里玩得开心,就必须首先牢记它的准则。
打个不恰当的比方,初涉Eclipse的感觉多少有点像孤身一人在曼谷上空跳伞(这个比喻不适用于泰国程序员)。平安着陆之后,你需要食物和住所,但如何去得到呢?你应该如何利用身边的资源满足自己迫切的需要?
帮助你克服这种迷失感正是本书的首要目标。如果你和一名向导一起降落在曼谷,你就可以对他说:“我饿了。”而他会告诉你:“你可以在某地吃顿饭。”同样,如果你说:“我想实现这样一个功能。”本书会告诉你:“这应该是一个视角,那应该是一个Object Contribution,而那个功能则需要一个新的编辑器。”
即便读完本书,你还是无法获得Eclipse世界的完整地图,但对于任何基本的问题,你至少会知道一条解决的途径。你还会了解到一些准则,只有遵守它们,你才能和别人友好相处。这就好像我们为你画出一幅曼谷地图,在上面标出六条大街、一家饭店和一家宾馆。你无法从这张图上了解曼谷的一切,但靠着它已经足以在这个城市生存下来,足以开始了解更多的东西。
在学习Eclipse的过程中,你花在阅读代码上的时间会比编写代码多得多。你必须习惯于一天用六个小时读代码,再用一个小时写代码——你会发现这样的一天效率同样高得惊人。在习惯了Eclipse的文化之后,你会自然而然地“知道”如何解决越来越多的问题,但你同样会经常照搬其他方案的结构来解决类似的问题——可能是模仿Eclipse的结构,也可能是模仿你自己以前的解决方案。
当我们与你一道走进书中的范例时,我们不会装出一副无所不知的圣贤模样——实际上,我们也记不住所有的细节。不过,我们会告诉你如何找到可供模仿的结构。学会充分利用Eclipse的搜索工具,这也是成为Eclipse贡献者所必需的一项技能。
本书不是为想要学习使用Eclipse的初学者准备的,我们希望读者至少熟悉Eclipse的常用术语——视图、编辑器,凡此种种。使用Eclipse一段时间之后,你很可能产生对它进行扩展的想法,那时这本书就该派上用场了。
在筹备这本书时,我们发现可以讲的概念数不胜数。可是,如果我们把Eclipse所有的2000个知识点都写进去,恐怕就再也没人愿意看这本书了。为了留住你的目光,我们决定只介绍其中的50个知识点——对于刚迈进这个世界的你来说,这应该是最重要的50件事。在很多章节的最后,你可以找到我们为你准备的“前行的路标”。你可以跟随它的指引在代码中找到书中概念的延伸。实际上,在向别人传授Eclipse知识时,我们最常用的办法就是:“不妨去看看org.eclipse.core.runtime的源代码”。
有这么一个故事:有个博士生马上要进行答辩,答辩的主题是“果实”。可是时间已经太紧迫了,他只来得及去了解黄瓜这一种果实。答辩开始了,第一个问题是:“请谈谈你对西红柿的了解。”“你看,”他说道,“西红柿是一种果实——跟黄瓜一样。黄瓜含有80%的水分,它的表皮能抵挡病虫害,可以用黄瓜来做沙拉。”就这样,尽管他不了解别的果实,但他成功地把每个问题都扯到了黄瓜上面。
我们也了解黄瓜。除了Eclipse之外,我们还有两条“黄瓜”:模式和JUnit。所以,贯穿这本书的始终,你会不断发现类似于模式的建议——实际上,一开始写这本书的时候,我们总觉得有点不舒服,直到我们开始写下一些“法则”;有了“法则”的概念之后,我们的写作就进展得顺利多了。说到底,这些法则其实就是微型的模式。
JUnit——我们的第二条“黄瓜”——则是运行所有示例的基础。1997年,在去亚特兰大的飞机上,我们俩花了几个小时开发出了JUnit的第一个版本。从那以后,我们的整个技术生活几乎都围绕着它。对于本书中的示例代码,JUnit是一个最理想的运行环境:你可以非常方便地运行所有测试,并一目了然地看到结果。
但是,我们必须给你一个忠告:如果你已经听厌了模式和JUnit,也许这本书并不适合你。
格式约定
本书将使用如下的格式约定:
粗体——用于表示用户界面元素,例如菜单、按钮、标签、文本框等。
斜体 ——用于表示文件名和URL。另外,新出现的术语也用斜体字强调。
序言回到顶部↑
从很多种意义上来说,Eclipse都是一件杰作。Eclipse是一种技术,是一个可扩展的工具集成平台、还包括在这个平台之上构建起来的众多工具。Eclipse还是一个开源项目,正是这个项目为世界奉献了这项卓越的技术。Eclipse更是一个社群,这里的人们为开源项目做出贡献,同时也开发基于Eclipse的商业工具。这个社群涵盖了形形色色的人,从基于Eclipse产品的使用者,到编写Eclipse扩展工具的开发者,再到探索Eclipse潜能的研究者,他们都在为这个社群添砖加瓦。
Eclipse是一项雄心勃勃的事业:它要为各种不同的工具提供一个互操作的平台——工具之间交互的方式甚至超出作者最初的想像。为了实现这一目标,我们选择了一种开放、平等、协作的开发过程——任何人都可以为这个平台作出贡献,但凡高质量的作品都会被采纳。正如“贡献法则”告诉我们的,“一切皆是贡献”。获得如此众多的贡献,一切皆有可能。
Eclipse平台本身就由无数的插件组成,如果再把网撒得开一些,你还会找到数不胜数的插件。本书将帮助你跳入这个不断扩展的生态系统,亲身成为一名工具编写者。这本书是一位忠实的向导,它将带领你跨过第一道门槛,进入Eclipse开发的世界,然后把这个世界的地图交到你手上,任你自由翱翔。书中为你准备了一个详尽的范例,带你一步步走过一个插件的整个发展历程——从最基本的实现直到成熟的软件产品。另外,本书还将告诉你扩展Eclipse时应当遵循的原则,让你的插件开发不致偏离正道。即使读过其他介绍Eclipse的资料,相信你同样会欣赏这本书,因为作者匠心独运的指导能够帮助你加深对Eclipse的理解,并且让你从一个全新的角度审视那些过去很少体验的领域,获得新的认识。在很多章的结尾处,作者还给出了“前行的路标”,这些路标将帮助你找到更多相关的信息。
不能不提到本书的两位作者,他们对自己写作的主题有着深刻的理解。Erich是Java开发工具领域当之无愧的权威,在编著本书之前,他就一直影响着Eclipse平台的发展和成长。Kent对软件开发过程的理解无人能出其右,而且善于深入浅出地阐释技术思想。这一次,他们两人携手与读者分享他们在Eclipse方面的经验,并指导读者如何在这条路上获得成功。这是一本卓尔不群的实用书籍,它将指导你如何深入Eclipse的世界,我相信你一定会喜欢它。
在这里,我乐于和你分享一些个人的感受。在IDE技术领域里,Erich和我已经合作了好些年。回想起来,我们从前的很多工作都只是学习的台阶——有时甚至还没来得及完成一项工作,我们就不得不进入又一次新的迭代循环。但我们一直在学习。而在Eclipse这里,我们终于拥有了一个稳定而又欣欣向荣的技术平台。Eclipse值得你投入精力和热情。请把Eclipse作为你工作的左膀右臂,我相信你会找到为Eclipse作出贡献的新途径!
IBM Eclipse平台领导者
John Wiegand
2003年9月
Eclipse是一项雄心勃勃的事业:它要为各种不同的工具提供一个互操作的平台——工具之间交互的方式甚至超出作者最初的想像。为了实现这一目标,我们选择了一种开放、平等、协作的开发过程——任何人都可以为这个平台作出贡献,但凡高质量的作品都会被采纳。正如“贡献法则”告诉我们的,“一切皆是贡献”。获得如此众多的贡献,一切皆有可能。
Eclipse平台本身就由无数的插件组成,如果再把网撒得开一些,你还会找到数不胜数的插件。本书将帮助你跳入这个不断扩展的生态系统,亲身成为一名工具编写者。这本书是一位忠实的向导,它将带领你跨过第一道门槛,进入Eclipse开发的世界,然后把这个世界的地图交到你手上,任你自由翱翔。书中为你准备了一个详尽的范例,带你一步步走过一个插件的整个发展历程——从最基本的实现直到成熟的软件产品。另外,本书还将告诉你扩展Eclipse时应当遵循的原则,让你的插件开发不致偏离正道。即使读过其他介绍Eclipse的资料,相信你同样会欣赏这本书,因为作者匠心独运的指导能够帮助你加深对Eclipse的理解,并且让你从一个全新的角度审视那些过去很少体验的领域,获得新的认识。在很多章的结尾处,作者还给出了“前行的路标”,这些路标将帮助你找到更多相关的信息。
不能不提到本书的两位作者,他们对自己写作的主题有着深刻的理解。Erich是Java开发工具领域当之无愧的权威,在编著本书之前,他就一直影响着Eclipse平台的发展和成长。Kent对软件开发过程的理解无人能出其右,而且善于深入浅出地阐释技术思想。这一次,他们两人携手与读者分享他们在Eclipse方面的经验,并指导读者如何在这条路上获得成功。这是一本卓尔不群的实用书籍,它将指导你如何深入Eclipse的世界,我相信你一定会喜欢它。
在这里,我乐于和你分享一些个人的感受。在IDE技术领域里,Erich和我已经合作了好些年。回想起来,我们从前的很多工作都只是学习的台阶——有时甚至还没来得及完成一项工作,我们就不得不进入又一次新的迭代循环。但我们一直在学习。而在Eclipse这里,我们终于拥有了一个稳定而又欣欣向荣的技术平台。Eclipse值得你投入精力和热情。请把Eclipse作为你工作的左膀右臂,我相信你会找到为Eclipse作出贡献的新途径!
IBM Eclipse平台领导者
John Wiegand
2003年9月








点击看大图





加载中...

