<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 59, 文章 - 4, 評(píng)論 - 184, 引用 - 7
    數(shù)據(jù)加載中……

    重新帶J2EE項(xiàng)目-兼談架構(gòu)模式的影響

     

    寫(xiě)了幾個(gè)月的通訊中間件,再次帶領(lǐng)一個(gè)J2EE項(xiàng)目,使用WebWork、Spring、Hibernate,感覺(jué)寫(xiě)J2EE項(xiàng)目就像在休假,要考慮的事情少之又少,無(wú)論是效率、異常處理、線程調(diào)度、架構(gòu)模式,一切都不再那么重要,無(wú)需考慮那么多,只要語(yǔ)義清晰,溝通流暢就好了。
    想起一周前跟Jerry聊天,說(shuō)起因?yàn)閁nixware下JDK1.3的notify語(yǔ)義的不穩(wěn)定問(wèn)題而一天內(nèi)重新編寫(xiě)了三次通訊框架,最后采用了完全非框架的過(guò)程化寫(xiě)法,Jerry說(shuō)應(yīng)該先寫(xiě)出一個(gè)實(shí)現(xiàn),然后在之上重構(gòu),就像爬山一樣,不可能一下子攀登到頂峰,當(dāng)時(shí)雖然心里感覺(jué)不是這樣,但竟一時(shí)語(yǔ)塞,不知從何說(shuō)起,再次回到J2EE開(kāi)發(fā),才恍然明白那天的感覺(jué),框架開(kāi)發(fā)和業(yè)務(wù)開(kāi)發(fā)的不同就在于,很難重構(gòu),尤其是通訊框架,架構(gòu)通常決定了它的幾個(gè)重要指標(biāo)。

    架構(gòu)模式不同于設(shè)計(jì)模式,設(shè)計(jì)模式的問(wèn)題可以通過(guò)重構(gòu)解決,而架構(gòu)模式幾乎只能重新做(當(dāng)然也有例外),架構(gòu)一旦確定,很多東西就無(wú)法再加入,所以為什么很多開(kāi)源的J2EE框架在大版本升級(jí)后不得不拋棄向后兼容。這也是為什么國(guó)產(chǎn)通訊框架Cindy的作者想在其中加入FilterChain,而最終放棄的原因,因?yàn)檫@對(duì)基礎(chǔ)庫(kù)的改動(dòng)實(shí)在太大。

    而MINA的架構(gòu)就足夠靈活,它屏蔽了不同通訊方式和通訊底層事件機(jī)制的差異,就像在如同Cindy和Netty2這種基于NIO的reactor模式之上的框架,要想重構(gòu)到BIO,就幾乎要全部重寫(xiě),不過(guò)Netty2要好一些,畢竟有Netty1作為鋪墊,所以在NIO的reactor的路上走的不是很遠(yuǎn)(NIO的reactor實(shí)現(xiàn)真是的不咋個(gè)),而MINA則只需要在SocketIoProcessor中使用Helf Sync/Helf Async模式替換掉reactor之上的事件處理即可,當(dāng)然,最好還要提供線程池以便進(jìn)行overload shield,在向Apache LDAP團(tuán)隊(duì)提交了MINA的JDK1.3核心庫(kù)時(shí)也曾想提起該問(wèn)題,可惜后太忙,忘記了。不過(guò)我想以Trustin的聰明,一定會(huì)想到這個(gè)問(wèn)題。

    posted on 2005-09-21 17:47 fisher 閱讀(1520) 評(píng)論(3)  編輯  收藏 所屬分類(lèi): Programing

    評(píng)論

    # re: 重新帶J2EE項(xiàng)目-兼談架構(gòu)模式的影響  回復(fù)  更多評(píng)論   

    呵呵,我同意你的說(shuō)法,架構(gòu)層次和我聊天時(shí)說(shuō)的那個(gè)先實(shí)現(xiàn)再重構(gòu)確實(shí)不太一樣,架構(gòu)設(shè)計(jì)中需要考慮系統(tǒng)的核心目標(biāo),根據(jù)此目標(biāo)做出骨架式的架構(gòu)設(shè)計(jì),架構(gòu)設(shè)計(jì)一旦出問(wèn)題整個(gè)系統(tǒng)可以說(shuō)已經(jīng)決定了后果了,重構(gòu)一般都是層次實(shí)現(xiàn)級(jí)的,而不是架構(gòu)級(jí)
    2005-09-21 19:47 | Programmer's Life

    # re: 重新帶J2EE項(xiàng)目-兼談架構(gòu)模式的影響  回復(fù)  更多評(píng)論   

    本來(lái)是想說(shuō)最近很輕松的,說(shuō)著說(shuō)著就跑題了:)
    2005-09-21 20:02 | flyingbug

    # re: 重新帶J2EE項(xiàng)目-兼談架構(gòu)模式的影響  回復(fù)  更多評(píng)論   

    博主,可否請(qǐng)教你一個(gè)問(wèn)題:
    我在測(cè)試中連續(xù)發(fā)大量請(qǐng)求,mina做的server端會(huì)出現(xiàn)只created連接,但之后卡在那里不繼續(xù)運(yùn)行,這樣的問(wèn)題如何解決?
    [SocketAcceptorIoProcessor-0.0] INFO handler.CommunicatorServerSessionHandler - [/192.168.0.166:40775] CREATED
    [SocketAcceptorIoProcessor-0.0] INFO handler.CommunicatorServerSessionHandler - [/192.168.0.166:40776] CREATED
    2007-05-23 16:04 | itVincent
    主站蜘蛛池模板: 最新久久免费视频| 国产美女在线精品免费观看| 日韩亚洲AV无码一区二区不卡 | 亚洲人成电影在线观看网| 成人a视频片在线观看免费| 国产精品成人免费观看| 亚洲综合视频在线观看| 在线日韩av永久免费观看| 成人免费ā片在线观看| 亚洲一区在线视频| 久久久久亚洲AV成人网人人网站| 精品无码人妻一区二区免费蜜桃| 国产午夜亚洲精品不卡| 麻豆亚洲AV永久无码精品久久| 好爽好紧好大的免费视频国产| a级毛片高清免费视频就| 亚洲色精品三区二区一区| 亚洲综合日韩久久成人AV| 免费不卡视频一卡二卡| 久久九九久精品国产免费直播| 亚洲午夜精品一区二区公牛电影院 | 免费一级毛片在线播放放视频 | 亚洲av无码一区二区三区天堂古代| 免费看国产一级片| 国产成人免费高清激情明星| 农村寡妇一级毛片免费看视频| 亚洲一欧洲中文字幕在线| 亚洲级αV无码毛片久久精品| 在线观看免费亚洲| 天天影视色香欲综合免费| a级毛片视频免费观看| 野花视频在线官网免费1| 亚洲a级在线观看| 亚洲第一AV网站| 亚洲国产日韩成人综合天堂| 无码中文字幕av免费放| 久久99热精品免费观看牛牛| 一道本在线免费视频| 亚洲乱妇老熟女爽到高潮的片 | 一级毛片无遮挡免费全部| jiz zz在亚洲|