Posted on 2006-09-09 20:53
兵臨城下 閱讀(373)
評論(2) 編輯 收藏 所屬分類:
Java EE
?????????好久沒有更新我的blog了!呵呵!最近比較忙!
?????????進入公司用已經整整5個月了,最近完成了項目升級版本中一個新增功能,做完以后現在回想起來,感覺很簡單,沒做什么,可當時做的時候怎么就感覺那么復雜呢!(當初的開發和后續的解bug,確實花了不少精力)
?????????通過這次的開發,對公司這套系統架構有了一個大概的了解,和大家討論共享一下:
?????????公司是做銀行金融軟件的,客戶主要面向國外(如亞洲的渣打銀行)。這套系統給我的第一感覺就是:自己發明了“輪子”。(看來公司還是有一點底蘊的)
???????? Rod Johnson說不要重復發明“輪子” ,可我好像看到了一個新“輪子”。這個系統也是建立在J2EE的平臺上,但比較特殊,不是常見的web系統,它是一個參數配置系統,web中的所有業務元素都可以由配置文件來控制。在web程序之外,還有一套用Java Swing開發的配套軟件,對于不同的業務做不同的配置,生成一套參數供web使用。(靈活性相當大)
?????????結合MVC來討論一下這套系統:(系統分為web端和AP端)
?????????MODEL(AP):看來J2EE中Enity Bean確實有很多詬病,公司沒有采用任何的ORM,而是直接通過SQL語句與數據庫交互。但使用了Session Bean(stateless) 來做facade,封裝DAO層,來實現持久化邏輯。大概框架如此,不過其中為了實現分層,還有很多的control層和實現層。我還沒徹底理解就不說了。
????????VIEW、CONTROL(WEB):公司系統的view層沒有采用任何的開源框架,所有的動態邏輯都是通過Tag來實現的。其實和struts一樣,只不過struts是寫好的Tag,而我們是用我們自己寫的Tag,雖然比較復雜,但控制的粒度精細,是struts所不能比的(不是貶低struts,只是在粒度方面,struts確實不怎么樣)。
????????有一點我要說的是狀態管理。公司系統并沒有使用J2EE中的有狀態的Session Bean,而是把所有的狀態都保存在httpSession中,網上看到一些文章說,Session中存儲大量的信息會增加服務器的負擔,不知道公司在性能方面是怎么考慮的。我覺得狀態管理是個很頭疼的問題,就是SSH架構中,Spring也不能管理狀態,我知道的就是J2EE中有狀態會話Bean是一個管理狀態的組件。把狀態信息存儲在Session中使用起來確實很方便,但server要維護這個狀態就很耗資源了。
?????????還有一點就是,公司系統中大量的使用了JS,因為我對JS不熟,所以讓我寫JS比較頭疼,留下的印象比較深。我曾經問過我的一個朋友,問他公司的系統中JS的使用程度,他的回答是:能不用盡量不用。所以我現在比較疑惑,對JS的使用是不是有一個度的問題呢?
?????????還有一點,我前面說過了,我們公司的系統是一個參數配置系統,配置一個應用需求,有一整套參數,都是XML文件。所以在系統中的數據交互都是通過XML來組織的(也就是通過DOM)。比如說,當一個用戶登錄后,會從數據庫和配置參數中讀取這個用戶的相關信息,存儲在DOM中,然后伴隨這個用戶的整個會話周期,交易的狀態和信息都可以從這個DOM中讀取。以前在學習XML時,書中總是說XML是組織數據傳遞數據的,當時不理解,現在總算明白了!呵呵!
?????????說了很多,只是一個初步的了解,歡迎各位網友發表看法!
?????????好了,不說了,剛下了部電影,看電影去了!呵呵!