搞笑談軟工的「
還少一本書:Contributing to eclipse: Principles, Patterns, and Plug-ins」這篇文章提到一本經典著作,聽了Teddy的話於是買一本回家供奉珍藏,以免之後發生絕版的情形而遺憾。
只要有心,人人都可以成為「蝕」神!
Erich Gamma and Kent Beck,
Contributing to Eclipse: Principles, Patterns, and Plug-Ins, Massachusetts: Person Education, 2004.
這本書的作者是大名鼎鼎的Erich Gamma,他就是「
物件導向設計模式」的作者之一,而他和 Kent Beck是JUnit的開發者和維護者。這本書主要是介紹eclipse貢獻開發的重要觀念和資訊,並且說明Eclipse的生態系,其中Eclipse有個重要觀念:就是
每個使用eclipse的用戶都是潛在的程式開發人員。作者說這和Smalltalk的目標很像,授予用戶能夠使用Eclipse的經驗,而且提供用戶有更多權力的學習環境,進而不斷提升整個Eclipse的功能。
在Eclipse生態系中有6個角色:
- Users:使用者,使用Eclipse的程式開發人員。
- Configurers:配置者,根據自身的使用經驗設定Eclipse功能。
- Extenders:擴展者,改變原本Eclipse的既有功能,讓Eclipse擴充做更多的事情。
- Publishiers:發佈者,開發好用的擴充套件,提供給Eclipse的使用者。
- Enablers:啟用者,提供擴充套件的擴充點讓更多開發人員擴充既有功能。
- Committer:提交人,Eclipse是Open Source Project,由提交人組成的委員會管理。
這六個角色當中的5個層級構成
貢獻循環(Contribution Circle),循環是Users→ Configurers→ Extenders→ Publishiers→ Enablers→ Users,注意到Enablers最後回到Users。整本書分成4個循環介紹如何貢獻Eclipse,從「Circle 0」到「Circle 3」,每個循環更進一步介紹貢獻開發的細節。
貢獻Eclipse之前,必須先了解eclipse的軟體架構,基本上Eclipse是採用
外掛架構(plug-in architecture, 或稱插件架構),外掛架構由兩個部分組成:
- 擴充點(extention points):提供外掛放置的地方(places-to-plug-things-in)
- 擴充(extentions ):外掛的元件(things-plugged-in)
Eclipse的架構由上至下分為三層:
- Plug-in Development Environment (PDE):外掛開發環境,擴充JDT使Eclipse支援外掛的開發。
- Java Development Tools (JDT):Java開發工具,讓Eclipse成為完整的Java整合開發環境。
- Platform:定義通用性程式語言(common programming-language-neutral)的基礎架構
其中Platform的部分由兩大部分組成,各自包含不同元件:
- 使用者介面部分(User Interface, UI)
- Workbench(工作臺)
- JFace
- Standward Widget Toolkit, SWT
- 核心部分(Core, UI-independent)
有關使用者介面的資訊可以參考官方準則「
Eclipse User Interface GuidelinesVersion 2.1」,裡面有更詳細的說明。在貢獻Eclipse時,務必先有上述的概念,並且認識相關術語,這樣閱讀開發文件能可以清楚了解。
###