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

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

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

    Spring Framework 的理解以及可維護性是否得以改善的思考

    Spring的特性:
    1. 提供了一種管理對象的方法,可以把中間層對象有效地組織起來。一個完美的框架“黏合劑”。
    2. 采用了分層結構,可以增量引入到項目中。
    3. 有利于面向接口編程習慣的養成。
    4. 目的之一是為了寫出易于測試的代碼。
    5. 非侵入性,應用程序對Spring API的依賴可以減至最小限度。
    6. 一致的數據訪問介面。
    6. 一個輕量級的架構解決方案。

    對Spring的理解
    Spring致力于使用POJOs來構建應用程序。由框架提供應用程序的基礎設施,將只含有業務邏輯的POJOs作為組件來管理。從而在應用程序中形成兩條相對獨立發展的平行線,并且在各自的抽象層面上延長了各自的生命周期。

    Spring的工作基礎是Ioc。Ioc將創建對象的職責從應用程序代碼剝離到了框架中,通常2中注入方式:setter 和 ctor參數。
    每個Bean定義被當作一個POJO(通過類名和JavaBean的初始屬性或構造方法參數兩種方式定義的Bean)。
    Spring的核心在org.springframework.beans,更高抽象層面是BeanFactory. BeanFactory是一個非常輕量級的容器。

    關于可維護性的思考
    Spring之類的技術確實帶來了應用系統的可維護性的提高嗎?
    Ioc, AOP之類的技術,本質上都是將原本位于應用程序代碼中"硬編碼"邏輯,剝離出來放到了配置文件中(或者其他形式)。主流聲音都是認為提高了應用程序的可維護性。

    但如果從以下方面觀察,結合項目實際經驗,個人感覺這些技術的應用大大降低了應用程序的可維護性,尤其是面對一個陌生的系統,或者項目人員變動頻繁的時候。
    1. 中斷了應用程序的邏輯,使代碼變得不完整,不直觀。此時單從Source無法完全把握應用的所有行為。
    2. 將原本應該代碼化的邏輯配置化,增加了出錯的機會以及額外的負擔。
    3. 時光倒退,失去了IDE的支持。在目前IDE功能日益強大的時代,以往代碼重構等讓人頭痛的舉動越來越容易。而且IDE還提供了諸多強大的輔助功能,使得編程的門檻降低很多。通常來說,維護代碼要比維護配置文件,或者配置文件+代碼的混合體要容易的多。
    4. 調試階段不直觀,后期的bug對應階段,不容易判斷問題所在。
    5. 性能問題。雖說硬件性能日新月異,但是性能也是在不經意間一點一點地流失的。從匯編到高級語言,到面向對象,到虛擬機,一直處于這樣的發展趨勢。

    Feedback

    # re: Spring Framework 的理解以及可維護性是否得以改善的思考[未登錄]  回復  更多評論   

    2008-07-07 18:17 by 英雄
    對你提到的spring大大降低了應用程序的可維護性,我有幾點爭議:
    我們的應用說到底就類似是一本說明書。spring利用ioc,aop兩個概念,其實給出了說明書的表述結構。IOC給出了對象的生命周期描述框架(類似說明書中出現的目錄),AOP給出了橫切式的描述方式(類似說明書中出現的附注)。剩下的部分,我們就開始在IOC的基礎上描述系統啟動后要建立哪些對象,對象間如何相互引用,每個對象是隨叫隨生還是保持唯一,每個對象提供哪些服務,具體實現的細節;我們還要時不時加點附注,主要是事務控制。這些描述之后,再加上spring對web層的薄薄的封裝描述(類似閱讀須知罷),整個說明書描述結束。
    所以從這個角度,我認為spring的這兩項技術應用,使應用程序的邏輯標書更加簡潔清晰完整。至于一部分描述出現在配置文件中這只是個形式,并沒有什么問題。
    關于spring的配置文件,即使不能找到一些插件啊之類的工具來管理,也可以自己寫一些東西來幫助管理。如果你所在的項目還在手工書寫和維護配置文件,而且是巨大的配置文件,那確實是非常頭大的。
    IOC+AOP不僅僅給出了一個完整的描述結構,同時這兩個大模式也強有力地規范了代碼,統一了程序員的編程方式,應該說合理地使用spring能帶來類間的高度解耦,保證享受到面向對象,面向方面編程實踐的好處。

    # re: Spring Framework 的理解以及可維護性是否得以改善的思考  回復  更多評論   

    2008-07-08 19:40 by ek
    寫的不錯,的確實用。
    既然路過這里,推薦一個jee視頻學習的網站
    http://bbs.langsin.com/index.php?fromuid=172

    # re: Spring Framework 的理解以及可維護性是否得以改善的思考  回復  更多評論   

    2008-07-17 23:08 by bluoy
    @英雄
    謝謝你的精彩回復。
    確實,我當然也感受到了spring帶來的種種好處,就好像從匯編到C,從過程到OO一樣,軟件進化進程的每一環節都確實給許多開發者帶來了好處。

    本文主要是想換個角度思考一下。在這里,我和你的觀點恰好相反了,我認為就是因為形式上的不一致,給開發者帶來了很多困惑。尤其是用配置語法來描述程序邏輯,而目的僅僅是為了滿足許多憑空想象的,子無虛有的靈活性,可配置性(好像敏捷開發所抵制的一樣),打斷了過程中的連續性。

    再好比現在多如牛毛的各種中間件,本意都是好的,代碼復用,提高開發效率,代碼質量。但現實往往與預期相反,開發者首先需要想學習一大堆中間件。學習曲線并未降低,項目進度并未改善,項目質量也乏善可陳。

    也許,事物就是在矛盾中發展的吧,所謂有利就有弊嘛。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲六月丁香六月婷婷蜜芽| 国产精品亚洲片在线花蝴蝶| 午夜时刻免费入口| 免费观看又污又黄在线观看| 免费一级肉体全黄毛片| 黄色免费在线网址| 亚洲国产香蕉人人爽成AV片久久| 激情吃奶吻胸免费视频xxxx| 国产a级特黄的片子视频免费| 真正全免费视频a毛片| 亚洲 国产 图片| 一个人看的免费观看日本视频www| 亚洲欧洲久久久精品| 国产精品无码免费专区午夜| 中文字幕亚洲综合久久菠萝蜜| 国产在线播放线91免费| 亚洲AV乱码一区二区三区林ゆな| 无码人妻一区二区三区免费n鬼沢| 91精品国产亚洲爽啪在线影院| 丁香花免费完整高清观看| 亚洲码欧美码一区二区三区| 亚洲国产精品毛片av不卡在线| a级片免费在线观看| 久久综合亚洲色一区二区三区| aa级一级天堂片免费观看| 爱爱帝国亚洲一区二区三区| 国产自偷亚洲精品页65页| 久久永久免费人妻精品下载| 亚洲一本到无码av中文字幕| 国产成人精品曰本亚洲79ren| 国产99视频精品免费专区| 中国china体内裑精亚洲日本| 波多野结衣免费视频观看| av永久免费网站在线观看 | 亚洲美女在线国产| 无码囯产精品一区二区免费| 亚洲一卡2卡三卡4卡无卡下载| 中文字幕不卡亚洲| 蜜桃精品免费久久久久影院| 永久免费AV无码网站国产| 一区二区亚洲精品精华液|