Monday, February 27, 2006

開發JAVA程式的新武器

今年JavaOne活動,有幾場主題演講焦點都在程式開發工具之上,一是去年JSF剛出道時所用的IDE工具-「Project Rave」,現在已正式命名為Sun Java Studio Creator(簡稱JSC);另一項開發工具則是企業級的Sun Java Studio Enterprise(簡稱JSE)。JSE雖然不算是全新的武器,但在功能上絕對是大幅的改進與創新。

開發Java網頁只要滑鼠拖拉放

JSC最新的版本結合JSF 1.1,已先內建不少網頁元件,利用視覺化拖拉放(drag-and-drop)的方式,使用者可輕易將各種元件置入網頁,之後可再透過屬性面版設定各元件的屬性與其所要處理的事件。相較過往,只要撰寫少許的程式碼,一個豐富的網頁應用程式就可誕生。這種程式開發的情境是不是有點像微軟的Visual Basic?沒錯,兩者方法十分雷同,但本質差異甚大。因為JSC所製作出來的可不是一般GUI介面的應用程式,而是純正的Java Web Application。

之所以開發此套簡易且功能完整的開發工具,Sun的企圖無非是希望吸引更多VB或其它平台的開發人員轉移至Java陣營。有了Creator,網頁應用程式的開發可以更快速,若再結合Validator的應用,撰寫網頁應用程式的同時,也能正確無誤得處理所有輸入的資料。

千萬不要以為這種快速開發網頁應用程式的作法,會與正規的J2EE應用程式所附著的開發架構產生違背或衝突。這樣說吧,SC提供與VB的ADO相似的元件,只要在網頁中加入這個元件,某張資料庫表格中的資料就可立即顯示到網頁上 。

或許你會懷疑,過去經常使用的J2EE Design model,如DAO Design Pattern,是不是就無用武之地?其實此舉原意還是不離簡化Java開發的目的,也是嘗試吸引VB開發人員的第一步。當入門者順利轉換至Java平台且漸漸熟悉Java網頁應用程式的開發方法之後,再慢慢學習正統的J2EE應用程式架構也還不遲。正因如此,JSC保留相當的擴充彈性,只要使用某些範例(templates)的架構(architecture),JSC一樣可以與現在常用的framework相容,如Struts、Hirbenate等,想要開發出規模更大且更穩固的網頁應用程式並非難事。

新版JSE功能更企業級

如果覺得JSC血統不夠純正,不妨試試JSE。JSE預先整合Sun旗下所有的Java Service產品,也就是所謂的Java Enterprise System(簡稱JavaES),提供單一的安裝、設定、部署的程式介面。此外,新增IDE功能是一大關鍵,再加上有不少wizard可使用,以及Sun獨有的Java Application Framework(簡稱JAF),讓Java程式開發者可簡單、快速地開發完整且強大的J2EE應用系統。

JAF可以說是令JSE之所以獨特的重要功能。JAF是一套對應軟體開發不同的應用層次(Layer)所提供的解決方案,像是Application Layer的Security、Platform Layer的Persistent、Foundation Layer的Logging。如果在處理J2EE應用系統都還是會遇到這些共通問題,而你尚未有滿意的解決方案的話,JAF或許會是一個不錯的選擇,你只需要專心處理商業邏輯層次(Business Layer)的事情,至於其它繁瑣的基礎工作就交給JAF吧。

我還是要老實說,若單從比較IDE功能優劣的角度,JSE恐怕不是最好的。市場上深受軟體開發人員青睞的IDE工具不少,其中又以Borland的JBuilder最紅,其它如EClipes、NetBeans也都是歷史悠久且獲好評的Java IDE工具。不過,這類工具還是有其缺點-如缺少與伺服器端整合的整體架構。

雖然Application和Web Server是所有IDE都會有的伺服器,但若要用LDAP呢?需要Message Queue功能時又該怎辦?Portal Server呢?在此情況下,開發人員往往需要另外安裝架設,而每一種應用的安裝、設定和部署方式與介面全然不同,這些程序往往會浪費相當多的時間成本。

回頭看看JSE,由於已預先整合全套的JavaES,透過一致的GUI設定操作,可降低導入的複雜性,其所開發出的應用系統,也保證符合J2EE的標準。另外,系統開發時雖然用的是JavaES,但最後部署時,還是可以移植至其它的伺服器平台,包括IBM WebSphere、BEA Weblogic,不僅可預留未來系統擴充與轉換時的彈性,還可保障已投資的開發時間與成本 。

值得注意的是,最新JSE版本也加入UML工具。就跟Rational XDE、TogetherJ等工具著名功能相同,設計(Design)跟原始碼(Source Code)可以即時同步。UML已是設計Java應用程式不可或缺的語言,IDE與UML工具相互整合是必然的結合。總不能每次都要開啟好幾個不同的應用程式,如Rational、NetBeans,彼此之間再依靠人工同步吧?其實人工也並非全然不可行,但只要系統架構愈來越龐大,就很容易產生兩邊不一致的情形。

JSE還有另一個新功能吸引了我的注意力-聊天(Chat)與即時傳訊(IM;Instance Message)。這項功能可身處異地的開發人員可在同樣的操作環境中,彼此交換意見或是合作撰寫同一份程式碼,開發人員之間的互動將更為緊密,不僅可省下不少溝通時間,也可降低出錯機會。

JSC和JSE的出現,讓開發人員有了新的選擇,我想有些人也許已被高價位與不停改版的IDE工具,壓的喘不過氣,或是使用免費的IDE,但往往缺乏整體性與功能。現在,不妨試試這兩項新武器。

不用懷疑,工具絕對會影響到一個開發團隊的工作進度,一個好的開發工具除功能強大之外,易學易用的介面也是相當重要。如果可再提供全套完整的解決方案,價格又在合理範圍內,而且不會侷限只能運作在windows平台上,我想是很值得投資的。小小的投資,就能讓企業賺進更多的錢,何必再用盜版的軟體呢?

基礎概念還是不能少

當然回歸基本面,IDE工具主要目的還是透過圖形化、簡單的操作介面處理Java程式開發過程中瑣碎繁雜的事情,要寫出一個好程式或系統,還是要有概念基礎。如果你對Java API全然不熟悉,只能依賴wizard,當然你就無法掌握所開發系統的架構,而wizard無法做到的事情時,如最佳化(Optimization),往往就會不知從何下手,到最後只會變成「被工具所使用」。

有些開發者喜歡完全駕御的感覺,完全不用工具,只用簡單的文字編輯器。當然,就像手排車與自排車,兩者之間並沒有一定的優劣,全憑個人的喜好或是團隊合作方式與開發目標與時程計畫。

我想再多的文字說明,也比不上直接觀看演講的內容,就算沒機會親自至會場上參與這些具有代表性的活動,但透過網路一樣可以欣賞精彩內容,2004 JavaOne所有議程內容可至此下載。若你已是JavaOne Online的會員,還可至JavaOne Online網站,收聽今年與2002, 2003年JavaOne內容或是下載所有相關的投影片資料。

如果你有興趣下載今年活動的議程內容,不妨聽聽享有「Java之父」美譽的James Gosling的主題演講。James Gosling對上述的開發工具有更為詳盡的介紹,同時也展示利用上述工具所撰寫的各種精采應用。

正如James Gosling演講的題目「Stretch your mind」,走了一趟JavaOne,我的視野更寬廣。Java不會只在Java Application、Web Application、J2EE Application、J2ME Java Games能有所發揮,模仿一下微軟的廣告標語「發揮想像,創意無限」,其實Java在各個領域與平台之上,也有相當完整的解決方案和技術支援,至於能不能創造商機,全靠開發人員的創意與智慧,Java已經準備好了,那你呢?

0 Comments:

Post a Comment

<< Home