天天看點

2004開發技術年度綜述之Java世界

2004-12-23 22:48:25 天極網/彭晨陽

2004年Java世界發生了巨大變化,主要方面是誕生和發展了幾個新名詞:IOC 、AOP、SOA、MDA,當然,除了這些都是決定Java技術未來走向的革命性發展以外,還有很多細部和微觀的發展,我們先來談談這些重要的細節技術發展。

  首先, Java的根基JDK已經跨越到了J2SE 1.5,或者稱為J2SE 5.0,不過,我更喜歡稱它為1.5,延續性是我們應用程式員更關心的,當然革命性是那些新技術發明者更陶醉的,是以他們曾經取名J2SE 2.0,現在,為了表示這種跨越,而且跨越是非常巨大,一下子達到了J2SE5.0,非常誇張,不過老外在技術上确實經常極端,"偏執者才能生存"我想是其行動主義文化的主要基礎。

  J2SE1.5 最吸引眼球的我認為主要是annotate特性,該特性可以大大降低程式員的程式設計量,它和Java Relfect機制結合,可以編制出相當靈活的軟體系統或架構。

  從J2SE1.5看出,SUN正在試圖簡化Java,但是也許這一簡化動作來得遲了點。

  同樣,珊珊來遲的是J2EE Web層的一個标準JSF,JSF使得程式員在開發J2EE的Web程式時,能夠如同開發SWING那樣實作可視化開發,提高了開發效率,但是必須有進階開發工具支援。

  由于好東西來得太遲,在一份最近調查中顯示,開源項目Struts已經在J2EE實際Web層開發中占據主導地位,Struts在2004年是達到成熟頂點,它的主要特點是将Form表單對象化,同時提供簡單的XML标簽替代以前Jsp中的Java語言,這樣在Jsp中徹底消滅了Java代碼,除了Struts,Tapestry這種徹底抛棄Jsp的開源Web架構産品也值得一提,它和WebWork一起成為一顆引人注目的星星。

  2004年發生了太多新的激動人心的事情,其中最引人注目的是AOP和SOA的迅速發展,Java世界的發展一直以來是分兩條路線,第一條是工業路線,以SUN、IBM、BEA和Oracle等工業巨頭為代表的業界标準,當工業巨頭制定出EJB 2.0以後,他們認為在JavaBeans技術架構内EJB已經走到極限,基本無需太多發展,是以,他們将關注目光投向軟體系統服務功能上,當一個個EJB元件提供了可重用的功能後,如何向不同客戶輸出這些強大的、可重用的功能呢?是反複安裝拷貝這些元件功能?還是以一種服務的方式适時提供全面的租用?SOA面向服務架構是以提出來,并且得到工業界巨頭的大量投入和發展,同時,他們還在關注流程的可定制化和可視化開發,通過強大的開發平台,可以很輕松地完成工作流的業務定制和修改。

  當業界巨頭關注重點從JavaBeans結構轉移時,一種新的設計思想和程式設計風格AOP(面向方面程式設計)誕生了,面向方面程式設計是OOP面向對象程式設計的延續,AOP于2003年底已經在國外熱起來,到了2004年應該算是全面開花,各種AOP産品如JBoss 4.0、Spring、Aspectwerkz等迅速誕生和發展,帶給程式員全新的概念和理念沖擊,AOP程式設計方法可以應用在軟體開發的各個領域,當你發現某個功能具有普遍性和通用性以後,那麼這個功能也許可以使用AOP實作,這樣你的代碼優雅,同時可維護性和拓展性大大增強。

  Ioc反轉控制應該說有着AOP類似解耦思路,通過Ioc模式或容器,可以比較徹底分離JavaBeans之間的調用和被調用關系,達到真正地面向接口程式設計,是Ioc使的面向接口程式設計變得更具有意義而且重要,Ioc的産品如純潔的PicoContainer以及Spring等等。

  開源和業界标準的分歧不僅僅展現在JavaBeans體系發展上,還展現在對象持久化方式上,在2004年有三種流行的對象持久化在被廣泛使用:EJB的CMP、Hibernate和JDO,這三者之間的差別和聯系也是很多程式員津津樂道的,特别是Hibernate的創始人Gavin King不斷對JDO的質疑,使的Hibernate名氣大升,也使的JDO一直未能夠進入EJB的持久化标準,Spring+Hibernate架構以及使用基于JBoss的EJB架構成為低成本高品質J2EE流行架構。

  這種"混亂"的局面下,EJB 3.0标準Preview方案被2004年Java ONE大會首次提出,EJB 3.0試圖取悅那些輕量方案的追随者,同時又能兼顧過去EJB标準的系列發展,JBoss迅速地提供了對EJB3.0支援包,其中我們看到了Gavin King這位鬥士的身影。

  同時,Hibernate向何處去是我們應用系統程式員關心的,Struts 2.0正在向JSF标準靠攏和遷移,Hibernate是否能夠一直孤軍作戰?目前一項旨在統一J2EE持久層技術的标準方案正在啟動中,我們期望簡單統一的持久層方案出台,減少程式員選擇遷移之苦。

  2004年又是Java世界吵鬧的一年,有的程式員說:現在學java卻越學越糊塗,看了很多東西,不但大腦裡沒有頭緒,反而有種走火入魔的感覺,因為各種技術派别都在争奪話語權,話語權的争奪意味着商機的誕生,JBoss和Spring的開發團體先後轉為商業公司是一個證明。對于應用者來說,沒有永遠的解決方案,隻有合适的工具,Java世界提供給你的是工具箱,而非一種選擇,需求是選擇工具的唯一原因。

  讓我們視野從J2EE思想和技術之争轉移到需求分析領域的領域,在這個領域一直也存在兩種意見:面向資料表分析還是面向模型分析?也就是說,建立一個新的系統,是先分析設計資料表還是模型,前者是以前資料庫系統經常采取的方式,但是這一傳統的方式目前也受到OO對象的沖擊,MDA(面向模型分析)在2004年成熟開花,各種Java成品也如雨後春筍一樣遍地開花,MDA思想提出了極端觀點:将來隻有模組化專家(其它程式員都變成藍領勞工了),隻要模組化專家通過UML設計出一個系統的模型,通過特定的Java MDA工具就可自動生成相應的代碼,好像真的不需要普通程式員了。

  結束語

  總之,2004年的Java技術帶給我們更多的是激動和壓力,新技術發展以月計算,作為程式員的我們如何跟上這些新技術發展,同時能夠選擇正确的技術引入我們自己的應用系統,這些才是我們的真正挑戰。