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