Java技術隨想

gudesheng發表於2008-01-03

CSDN英雄大會召開前之隨想

早春三月,江南大地雖然還是處於春捂時節,但萬物復甦的清新感覺還是撲面而來.承蒙各位支援我的好友的投票,我在CSDN的MVB票選中獲得了第二名,在即將到來的四月份,我榮幸的受CSDN的邀請參加其組織的英雄會.這是對我去年一年堅持寫博的一份肯定和鼓勵.

從事開發已經很多年了, 這麼多年什麼都搞過,從底層開發到分散式框架,各種常用語言,開發方法,什麼都嘗試過,才發現軟體這個行業其實也就這樣.

這麼多年,對於中小開發者來說,我逐步認識了3件事情:

一.java不是萬能的
曾經我們對java語言是那麼的期待,作為一種比C++簡化了的跨平臺的面嚮物件語言.java似乎也沒能承受我們的期待.首先在語言上,java的語法在不過的擴充,擴充的速度遠遠高於對程式碼本身效率優化的速度.

在桌面開發領域,Java似乎還不能突破VB,PB,DELPHI的包圍,在Web領域,PHP,Ruby等語言也在主機託管等領域對java展開了大圍剿.但似乎大家仍然把Java做為一個天生的王道,也許是因為那個帶垃圾回收機制的虛擬機器和大量免費的元件框架吧, 這個時代,尤其在不用M$的軟體公司眼裡,不用Java開發的系統也不好意思開個幾百萬.

但是對於絕大多數面向服務和快速應變的入口網站開發團隊,PHP妖嬈的身段實在有太大的魅力了.

當然java還抱著一箇中介軟體的稻草。不過似乎在面向訊息和ESB的架構中,EJB也很難翻身了。

二.開源不是萬能的
從2002年開發,各種開源軟體風起雲湧.sf.net裡面的開源專案數以萬計.如果整理一下開源的MVC框架,找到100多個,那還是常見的。我們曾經抱著很大的熱情去觀察每一個開源軟體.結果發現開源軟體就像別人的飯一樣,並不永遠合你胃口。大浪淘沙,dwr + struts2 + spring +hibernate這樣的框架最終勝出。(struts2雖然只是GA,但也比較成熟了,因為webwork2本身就很成熟,struts2是對webwork2的一次重購,基本上也就是改改包名字)

三.JCP不是萬能的
JCP作為制定標準的組織,似乎從來就沒有制定出什麼讓人真正感到實用的東西.從Portlet到JCR到JDO,似乎就沒有什麼真正用起來的。

Portlet標準最大的問題是沒有定義更好的互動模型,JCR的問題是查詢介面達不到SQL的強大。JDO,JPA之類,似乎也看不到什麼真正的能夠替代Hibernate的地方。


這麼多年真正炒作起來的概念:

MVC
MVC成就了Struts,而且簡直成了他的代名詞,作為一個URL可以明確呼叫的框架,從目前來看還是遠遠超越tapestry,jsf這些框架的。當他發現webwork比自己實現的更便捷的操作之後,乾脆把ww2跟自己合併起來。

ORM
搞java,你不建領域模型那就是沒面子,建了領域模型就必然需要一個工具來填充他,Hibernate的確在這個領域做到了最精

IOC
這個概念純粹是Martin提起來的,居然還就真的火起來了。不得不佩服這位大師。

IoC的前提就是任何希望被裝載的元件都要生存在容器中。結果struts2的action也變成了spring的bean。

AOP
和IOC一樣,AOP成就了SpringFramework,使用spring可以精簡大量的程式碼

AJAX
靠著google的大力推廣,ajax可謂紅透半邊天。

這幾年沒炒起來的概念:

門戶
前幾年,人人都提門戶,政府門戶,個人門戶,個性化定製。

IT也藉著這個概念炒Portal,但在中國我們發現,絕大多數門戶其實也就是個內容管理系統或者簡單的說一個網站,個性化定製似乎也沒什麼用處,最多也就是像google桌面一樣用ajax訂閱一些新聞,加上Portlet標準的不夠完善,使得Portal很難獲得更大的發展。

工作流

不能說工作流不成功,一個表單定製引擎加上表單流轉引擎的確可以解決很多企業應用,但是這麼多年,也沒有一個工作流引擎能取得像hibernate,spring這些框架在各自領域取得的獨領半壁江山的效果。--當時寫的太快了,沒來急推敲原話,改改句子,免得歧義 :)

據我淺薄的經驗,我看過很多政府,單位都上OA,但真正用起來的並不多

對於公文流轉型別的:絕大多數單位只是像郵件一樣發文章

對於請假,批示的:小企業管理不好的,推廣不下去;大企業上SAP的,有能用起來的

對於更加複雜的應用:由於對錶單資料的要求比較高,通常都是開發者自己開發一套簡易的適合專案的流轉引擎,或者整個應用還是基於資料庫實現。

目前比較國外普及的開源工作流jbpm,shark等都只適用於一些環境。

其實既然叫“工作流”,顯而易見,工作的複雜是千差萬別的,那又如何能指望有一個普適的工作流框架呢?如果你設計一個面向呼叫中心使用的工作流,面向單據簽收類的工作流,面向發文類的工作流說不定還更可能有效。

規則引擎
應用的不成熟性,導致不能真正流行。

目前正在炒,未來還不確定的概念

ESB
ESB的使用環境是在一個有很多現成的應用,並且它們都提供了整合的介面,這時候如果要開發新的應用,可以使用ESB簡化整合的操作。但是目前為止這個前提環境的條件在中國似乎也沒有形成。所以ESB是否能火也還是一個未知數。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1534756


相關文章