瞎忙了好幾的月,有好一陣子都沒時間靜下來好好讀本書,在可預見的下半年大概也好不到哪理去。沒讀新書就少了寫部落格的『料』,只好繼續把以前的『存款』拿出來花。找了一本以前唸書的時候所讀過的書,拿出來『
今天要炒的是 Contributing to eclipse: Principles, Patterns, and Plug-ins 這一本。有長期注意 Teddy 行蹤的鄉民們應該看過 Teddy 提到這本書好幾次了,前一陣子 Teddy 去參加 Scrum 經驗分享活動,也特別向圍觀的鄉民們推薦這一本書。尤其是想要成為 architect 的鄉民們,此書更是不可遺漏的秘笈。
雖然是 2003 年出版的『舊書』,但是這本書內容之豐富,絕對算是經典之作。先看一下作者是誰,哇賽... Erich Gamma and Kent Beck ... 兩位都是大師,就算看不懂內容,就衝著這兩位的名氣都應該要買一本回家供著。Teddy 敢大聲的說,要不是當年開發 Eclipse plug-ins 的經驗,再加上看過這本書,Teddy 的 architecture design 能力大概要少掉 1/3 ~ 1/2。
如果鄉民們恰巧有寫過 Eclipse plug-ins 的經驗,就應該可以體會到 Eclipse 設計偉大之處。幾乎所有的人都公認『整合』是一件很困難的事情,而 Eclipse 厲害之處,就是能夠把三教九流的
講了這麼多廢話,到底這本書在講些什麼?以下是 Teddy 認為 Eclipse 幾個最基本也最重要的概念:
- Plug-ins, extension, and extension point.
- Menu and Action.
- Marker and Marker Resolution.
- Builder and Nature.
- View and Editor.
- Workspace and Resource
- Java Core
所有的應用程式都會有 model 這一層,學會 View 和 Editor,也就了解到 MVC 的概念,透過 data provider 提供資料給 UI 這一層來顯示。Marker 就好像『狗皮膏藥』一樣,讓你自己開發的 plug-ins 可以依據某些規則在 UI 上標記記號,用以提醒某種狀況。例如,在 Java Editor 中發生語法錯誤時貼一個小標籤在 Java Editor 左方。而 Marker Resolution 就是用來幫助使用者(自動或半自動)排除這些狀況的作法。
Builder 機制讓使用者(程式設計師)可以自行開發並外掛『處理資料的程式』。例如,你發明了一個超棒的演算法,可以找出 Java source code 的那一行會發生 bug,哪麼你就可以自己寫一個 Builder,掛到 Eclipse 裡面,當使用者存檔的時候,讓 Eclipse 自動呼叫你所寫的 Builder 去分析與處理 Java source code。如果你的 Builder 有支援 Marker 的功能,就可以自動貼一個 marker 在可能出問題的那一行上面。至於 Nature 的功能是用來幫專案貼上某種標籤,如此 Eclipse 才會知道,當不同的專案被開啟的時候,要呼叫哪些 Builders。例如,如果你的專案具有 Java 的 Nature,Eclipse 就不會去呼叫 CDT。
更棒的是,Eclipse 不只是設計來支援 Java 程式開發,只要針對不同的 Resource 建構自己的 AST (Abstract Syntax Tree),就可以在 Eclipse 上提供一個類似 Java 的開發環境。根據 Teddy 所知,有些 IC 設計公司,除了提供自己的 IC (硬體)之外,也在 Eclipse 上開發自己的 compiler ,editor 與 debugger,讓客戶可以有一個好用的整合環境來開發特殊的程式。
***
寫到這裡可能會有鄉民說,我們公司又不是要賣開發工具,學 Eclipse 有什麼用?其實 Eclipse 架構可以讓開發者做很多事,不是只能用來開發『開發工具』(這句有點饒口)。有興趣的人可以去看一下 Eclipse RCP (Rich Client Platform)。
最後提醒一下,建議先學好 design patterns 之後再來看這本書,不然可能會不太容易懂。最好能邊看邊些一些簡單的 Eclipse Plug-ins 來當作練習,以收事半功倍之效。
***
友藏內心獨白:學弟們,你們說學長講得對不對啊?
不能再同意你更多...
回覆刪除聽起來好棒啊,好想看喔~
回覆刪除To Mat,
回覆刪除心動不如馬上行動...
To Liar菊,
回覆刪除學長不會害你滴。
結果去天瓏定,他們說這本書絕版了...
回覆刪除當初WiMAX計畫 我也偷偷用了一些概念來設計UI
回覆刪除To Newtype:
回覆刪除直接去 Amazon 買看看,說不定還有。另外,網路上說不定可以『找到』電子書...。
To Spirit Du:
用過都說讚吧!
今天看到的 :
回覆刪除Please welcome Erich Gamma to the Visual Studio team!
以後好東西要出在Visual Studio上囉,希望不會搞成像慢死人的Eclipse一樣
匿名:
回覆刪除什麼,Erich Gamma 居然跑去 M$... 果然是有錢能使...推磨。
某噗浪上寫 :
回覆刪除想到Rational Rose,就對大師比較沒有期待
(真想按個讚!!!)