Eclipse RCP詳解(04):Eclipse RCP相關的學習資料及國內相關圖書點評
Posted on 2014-02-19 21:35 京山游俠 閱讀(5864) 評論(13) 編輯 收藏 所屬分類: 擁抱Eclipse RCP上一篇:
Eclipse RCP詳解(03):SWT的相關概念以及一個連連看游戲的實現
最近又去圖書城逛了一圈,想看看有沒有什么意外的驚喜,特別是想看看有沒有Eclipse RCP方面寫得比較深入的圖書。然而結果是非常令人失望的。在整個計算機圖書區,找不到一本和Eclipse有關的,更別談RCP了。Java GUI編程的書不是沒有,然而都是講Swing和JavaFX的,似乎Eclipse RCP這個技術從來就不存在。
我前前后后也讀過幾本Eclipse的書,這些書基本上都是在亞馬遜上買的。我另外一些關于Eclipse的知識則是來源于Eclipse官方網站上面的英文資料。下面,我把這些學習資料列出來,并適當做一些點評,和大家分享。
一、最權威的資料:Eclipse的官方文檔
http://www.eclipse.org/documentation/
由于Eclipse RCP程序是一種特殊的Plug-in程序,所以參考資料都在Platform Plug-in Developer Guide這一節。包括SWT、JFace、Workbench等的API手冊都在這里。從這里學習RCP有一個優點,那就是可以看到各個版本API的變化,比如哪些API是Deprecated的。從API的變化可以看出Eclipse編程哲學的變化。比如說,文檔中介紹怎么為Workbench添加菜單、工具欄的章節,在3.X版本的文檔中,既包含了Actions,又包含了Commands。而到了4.X版本中,就只介紹Commands了。從這里學習RCP也有一個缺點,那就是這里的講解很簡略,雖然API手冊很全面,但是卻很難找到學習的入口點。
二、Eclipse Wiki中的RCP頁面
http://wiki.eclipse.org/Rich_Client_Platform
這里好東西也不少啊。有好幾個專家寫的不同版本的Eclipse RCP tutorial,還有好幾屆EclipseCon上面關于RCP高級編程方面的報告,提供PDF下載。想知道Eclipse 4中RCP編程的模型發生了什么變化,讀一讀Eclipse 4 RCP tutorials就一目了然了。
三、一本非常好的英文書

我這里給的圖片是直接從亞馬遜網站上拉下來的,大家可千萬別相信上面在線試讀字樣,在我的博客中這是不可能的。
不過我可以告訴大家一個秘密,那就是這本書的PDF都可以從CSDN上面下載到。
另外再告訴大家一個非常重要的秘密啊,那就是:這本書的中文翻譯非常垃圾,簡直就是一坨屎,所以大家還是看英文版吧。
這本書的三個作者都非常牛逼,Jeff McAffer是Eclipse RCP和OSGi的領導者之一,Chris Aniszczyk是Eclipse插件開發環境的領導者之一,所以他們寫的東西肯定是對Eclipse RCP介紹非常透徹的。另外一個作者Jean-Michel Lemieux曾經是Jazz項目的首席架構師和主要開發者,現在是Eclipse項目的貢獻者之一,他的優勢就是對大規模的企業級開發非常有心得。
我從這本書中學到不少,該書第二版對應的Eclipse版本是3.5。唯一有點美中不足的是,該書使用的英語略顯晦澀,即使我自認為英語很好,也只能慢慢地啃。
四、我讀過的最早一本中文Eclipse圖書

我讀這本書的時候Eclipse還是3.2。現在這本書已經沒有賣的了,即使是在亞馬遜。權當紀念吧。不過該書的PDF在網上是一找一大把。
五、我讀的最新一本Eclipse中文圖書

這本書的作者實力也很雄厚。這本書讀起來也很順。但是我覺得他包含的有用的信息量不夠。在這本書的前面約三分之二的篇幅是講SWT和JFace的,講得非常好,是個不錯的參考。但是中間只有一點點內容講RCP,很簡短,比官方文檔中的介紹還短,一點也不深入。最后一部分講Spring,只有兩章,讀起來也很順,但是我認為雖然作者的企業級開發實力很雄厚,但是在客戶端編程時直接使用Spring訪問數據似乎有點搞錯了方向。正確的做法應該參考我推薦的那本英文書,在客戶端,只需要一個Session用來和服務器通訊即可。Spring,還是留給服務器端用吧。就是想用依賴注入也不需要Spring了,因為Eclipse 4自己提供這個功能了。當然,這本書中的示例,使用Spring DM寫OSGi bundle,然后放到Eclipse中用,還是蠻有啟發性的。
六、我讀的另外一個牛人的兩本牛書


它們的作者都叫周志明,是個牛人。后面一本看起來和Eclipse關系不大,我在這里列出來就是為了證明它們的作者很牛。這兩本書其實都和Eclipse RCP關系不大,但是讀一下還是很有用的。比如在前面一本書中,前兩章對OSGi的介紹深入淺出,讀完這兩章后就明白原來一個bundle最重要的是它的SymbolicName和Version,其它的數據都是給人讀的,也明白了我們不僅可以依賴一個plugin,而且可以單獨導入一個bundle的某個package,更可以把一個package分開放到N個bundle中,每個bundle實現這個package的一部分。再比如作者介紹到每一個bundle都有自己的類加載器,當然plugin有例外,fragment plugin就沒有自己的類加載器,而是和host plugin共用一個類加載器,理解這一點后再理解i18n問題就簡單了,因為i18n的本質就是加載別的plugin里面的message資源。理解了類加載器的概念也更容易理解怎么從別的plugin里面加載資源,比如圖片。
總結:雖然目前國內圖書市場有幾本關于Eclipse RCP的圖書,但是它們對RCP的介紹不夠深入。我的這一系列博文定位是不一樣的。比如我就拋開SWT各個控件的具體用法不講,只關注于如果要實現某一類功能,RCP程序應該用到哪些部件。重點放在探討RCP的部件,如WorkbenchWindow、Menu、ToolBar、Editor上。所以我的文章雖然簡短,但是其深度是超過了上面那些圖書的。另外,我這里還有一個優點就是有趣的實例和漂亮的截圖。
下一篇:
Eclipse RCP詳解(05):JFace和結構化數據
Eclipse RCP詳解(03):SWT的相關概念以及一個連連看游戲的實現
最近又去圖書城逛了一圈,想看看有沒有什么意外的驚喜,特別是想看看有沒有Eclipse RCP方面寫得比較深入的圖書。然而結果是非常令人失望的。在整個計算機圖書區,找不到一本和Eclipse有關的,更別談RCP了。Java GUI編程的書不是沒有,然而都是講Swing和JavaFX的,似乎Eclipse RCP這個技術從來就不存在。
我前前后后也讀過幾本Eclipse的書,這些書基本上都是在亞馬遜上買的。我另外一些關于Eclipse的知識則是來源于Eclipse官方網站上面的英文資料。下面,我把這些學習資料列出來,并適當做一些點評,和大家分享。
一、最權威的資料:Eclipse的官方文檔
http://www.eclipse.org/documentation/
由于Eclipse RCP程序是一種特殊的Plug-in程序,所以參考資料都在Platform Plug-in Developer Guide這一節。包括SWT、JFace、Workbench等的API手冊都在這里。從這里學習RCP有一個優點,那就是可以看到各個版本API的變化,比如哪些API是Deprecated的。從API的變化可以看出Eclipse編程哲學的變化。比如說,文檔中介紹怎么為Workbench添加菜單、工具欄的章節,在3.X版本的文檔中,既包含了Actions,又包含了Commands。而到了4.X版本中,就只介紹Commands了。從這里學習RCP也有一個缺點,那就是這里的講解很簡略,雖然API手冊很全面,但是卻很難找到學習的入口點。
二、Eclipse Wiki中的RCP頁面
http://wiki.eclipse.org/Rich_Client_Platform
這里好東西也不少啊。有好幾個專家寫的不同版本的Eclipse RCP tutorial,還有好幾屆EclipseCon上面關于RCP高級編程方面的報告,提供PDF下載。想知道Eclipse 4中RCP編程的模型發生了什么變化,讀一讀Eclipse 4 RCP tutorials就一目了然了。
三、一本非常好的英文書


我這里給的圖片是直接從亞馬遜網站上拉下來的,大家可千萬別相信上面在線試讀字樣,在我的博客中這是不可能的。
不過我可以告訴大家一個秘密,那就是這本書的PDF都可以從CSDN上面下載到。
另外再告訴大家一個非常重要的秘密啊,那就是:這本書的中文翻譯非常垃圾,簡直就是一坨屎,所以大家還是看英文版吧。
這本書的三個作者都非常牛逼,Jeff McAffer是Eclipse RCP和OSGi的領導者之一,Chris Aniszczyk是Eclipse插件開發環境的領導者之一,所以他們寫的東西肯定是對Eclipse RCP介紹非常透徹的。另外一個作者Jean-Michel Lemieux曾經是Jazz項目的首席架構師和主要開發者,現在是Eclipse項目的貢獻者之一,他的優勢就是對大規模的企業級開發非常有心得。
我從這本書中學到不少,該書第二版對應的Eclipse版本是3.5。唯一有點美中不足的是,該書使用的英語略顯晦澀,即使我自認為英語很好,也只能慢慢地啃。
四、我讀過的最早一本中文Eclipse圖書

我讀這本書的時候Eclipse還是3.2。現在這本書已經沒有賣的了,即使是在亞馬遜。權當紀念吧。不過該書的PDF在網上是一找一大把。
五、我讀的最新一本Eclipse中文圖書

這本書的作者實力也很雄厚。這本書讀起來也很順。但是我覺得他包含的有用的信息量不夠。在這本書的前面約三分之二的篇幅是講SWT和JFace的,講得非常好,是個不錯的參考。但是中間只有一點點內容講RCP,很簡短,比官方文檔中的介紹還短,一點也不深入。最后一部分講Spring,只有兩章,讀起來也很順,但是我認為雖然作者的企業級開發實力很雄厚,但是在客戶端編程時直接使用Spring訪問數據似乎有點搞錯了方向。正確的做法應該參考我推薦的那本英文書,在客戶端,只需要一個Session用來和服務器通訊即可。Spring,還是留給服務器端用吧。就是想用依賴注入也不需要Spring了,因為Eclipse 4自己提供這個功能了。當然,這本書中的示例,使用Spring DM寫OSGi bundle,然后放到Eclipse中用,還是蠻有啟發性的。
六、我讀的另外一個牛人的兩本牛書


它們的作者都叫周志明,是個牛人。后面一本看起來和Eclipse關系不大,我在這里列出來就是為了證明它們的作者很牛。這兩本書其實都和Eclipse RCP關系不大,但是讀一下還是很有用的。比如在前面一本書中,前兩章對OSGi的介紹深入淺出,讀完這兩章后就明白原來一個bundle最重要的是它的SymbolicName和Version,其它的數據都是給人讀的,也明白了我們不僅可以依賴一個plugin,而且可以單獨導入一個bundle的某個package,更可以把一個package分開放到N個bundle中,每個bundle實現這個package的一部分。再比如作者介紹到每一個bundle都有自己的類加載器,當然plugin有例外,fragment plugin就沒有自己的類加載器,而是和host plugin共用一個類加載器,理解這一點后再理解i18n問題就簡單了,因為i18n的本質就是加載別的plugin里面的message資源。理解了類加載器的概念也更容易理解怎么從別的plugin里面加載資源,比如圖片。
總結:雖然目前國內圖書市場有幾本關于Eclipse RCP的圖書,但是它們對RCP的介紹不夠深入。我的這一系列博文定位是不一樣的。比如我就拋開SWT各個控件的具體用法不講,只關注于如果要實現某一類功能,RCP程序應該用到哪些部件。重點放在探討RCP的部件,如WorkbenchWindow、Menu、ToolBar、Editor上。所以我的文章雖然簡短,但是其深度是超過了上面那些圖書的。另外,我這里還有一個優點就是有趣的實例和漂亮的截圖。
下一篇:
Eclipse RCP詳解(05):JFace和結構化數據