卷1:第6章 Eclipse之一

2018-02-24 15:55 更新

原作者:Kim Moir
原地址:http://www.aosabook.org/en/eclipse.html

因為經(jīng)驗不足,有些地方可能翻譯的不好,后續(xù)還會抽時間斟酌完善,大家發(fā)現(xiàn)問題請盡管拍磚,多謝!

幾個術(shù)語的翻譯:

artifact:工件

plugin:插件

committers:提交者

眾所周知,實現(xiàn)軟件的模塊化是件困難的事情。管理不同社區(qū)開發(fā)的大量代碼之間的互相合作也是件困難的事情。對于Eclipse來講,在這兩方面上都取得了成功。在2010年6月,Eclipse基金會發(fā)布了Helios合作版本,它由來自超過40個公司的39個項目團隊和490個提交者來協(xié)作構(gòu)建基礎(chǔ)平臺的功能。Eclipse起初的架構(gòu)愿景是什么?它是怎樣進化的?一個應(yīng)用的架構(gòu)是如何做到鼓勵社區(qū)合作和成長?讓我們從頭開始。

2001年11月7日,一個名為Eclipse 1.0的開源項目釋放。當(dāng)時,Eclipse被描述為“一個并無任何特殊的集成開發(fā)環(huán)境(IDE)”。這個描述被有意簡單化了,因為其架構(gòu)愿景并不是又一個工具集而是一個框架,這個框架是模塊化且可擴展的。Eclipse提供了基于組件的平臺,它作為構(gòu)建開發(fā)人員工具的基礎(chǔ)。這種可擴展的架構(gòu)鼓勵社區(qū)基于一個核心平臺來進行擴展以突破其最初的局限性。Eclipse SDK允許開發(fā)人員將其作為宿主環(huán)境(self-host)并利用Eclipse SDK本身來構(gòu)建新版本的Eclipse。

開源開發(fā)者的經(jīng)典形象是一個懷有奉獻精神的人熬到深夜修改bug并實現(xiàn)有趣的新功能來滿足個人興趣。相反的,回顧一下Eclipse的早期歷史,它最初的一些代碼是IBM開發(fā)的VisualAge所貢獻的。這個開源項目的最初貢獻者是IBM的一家名為OTI的子公司(Object Technology International)。這些提交者將全部的工作時間用在開源項目上,他們在新聞群組上回答提問、修改bug、實現(xiàn)新功能。一些對其感興趣的軟件供應(yīng)商也組織起來為擴展這個開放工具的功能付出了努力。最初的Eclipse參與成員是Borland、IBM、Merant、QNX軟件系統(tǒng)、Rational軟件、紅帽、SuSE和TogetherSoft。

通過努力,這些公司基于Eclipse構(gòu)建出了商用的產(chǎn)品。類似于一些公司在Linux內(nèi)核上進行投入,他們讓自己的雇員來提高開源軟件,而開源軟件又成為其商業(yè)產(chǎn)品的基礎(chǔ)。在2004年的早期,Eclipse基金會成立來管理和擴張日益成長的Eclipse社區(qū)。這個非盈利性的基金會通過企業(yè)會員的會費來募集資金并由理事會來進行管理。時至今天,Eclipse社區(qū)已經(jīng)擴展到包含170多個會員企業(yè)和近1000個貢獻者。

最初,Eclipse作為SDK被人所知,但是現(xiàn)在它包含了更多的內(nèi)容。截止到2010年7月,在eclipse.org中有250個不同的項目處于開發(fā)之中。有各種工具來支持C/C++、PHP、web services、模型驅(qū)動開發(fā)以及構(gòu)建工具等。所有的這些項目都被包含在一個頂級項目(TLP)之中,這個頂級項目由高級會員所組成工程管理委員會(PMC)所管轄以負(fù)責(zé)技術(shù)方向和發(fā)布目標(biāo)。簡潔起見,本章只涉及到Eclipse SDK中的Eclipse項目和運行時Equinox項目的架構(gòu)進化。鑒于Eclipse產(chǎn)品有一個很長的發(fā)展歷史,我們將會關(guān)注早期的Eclipse以及3.0、3.4和4.0釋放版本。

6.1 早期的Eclipse?在21世紀(jì)初期,有許多的軟件開發(fā)工具但是它們中很少能協(xié)同工作。Eclipse試圖提供一個開源平臺,基于此平臺可以為應(yīng)用開發(fā)人員構(gòu)建互操作的工具。這將使得開發(fā)人員(譯者注——此處應(yīng)該值得是工具開發(fā)人員)集中精力實現(xiàn)新的工具,而不會再書寫諸如文件系統(tǒng)交互、提供軟件更新以及連接源碼庫這樣的基礎(chǔ)設(shè)施事務(wù)。Eclipse可能作為 Java開發(fā)工具(JDT)為人所熟知。而其真正的意圖可理解為這些優(yōu)秀的Java開發(fā)工具能夠作為樣例,并提供給那些有興趣開發(fā)其它語言工具的人們。

在深入了解Eclipse架構(gòu)之前,讓我們看一下對于開發(fā)人員來講Eclipse SDK是什么樣子的。在啟動Eclipse并選擇工作臺后,展現(xiàn)在你面前的將會是Java透視圖(perspective)。透視圖根據(jù)當(dāng)前使用的特定工具來組織視圖(view)和編輯器(editor)。

}

一旦用戶點擊了選擇了新的菜單項,實現(xiàn)這個擴展點的插件將會查詢擴展注冊器。提供擴展的插件會初始化功能提供者并加載插件。一旦這個插件被激活,在我們的例子中ExampleAction構(gòu)造函數(shù)將會被執(zhí)行,然后初始化一個工作臺操作代理(Workbench action delegate)。當(dāng)在工作臺進行了選擇且代理已被創(chuàng)建完成,實際的操作就會執(zhí)行。信息提示框?qū)棾鲞@樣的信息“Hello, Eclipse architecture world”。

這種可擴展的架構(gòu)是Eclipse生態(tài)系統(tǒng)成功成長的關(guān)鍵因素之一。公司或個人可以開發(fā)新的插件,既可以作為開源釋放可以商業(yè)出售。

Eclipse最重要的理念之一就是任何事情都是插件。不管這個插件是包含在Eclipse平臺中,還是你自己寫的,插件都是這個裝配式應(yīng)用的一等組件。圖6.3展現(xiàn)了早期Eclipse版本中以插件方式實現(xiàn)的相關(guān)功能。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號