軟件是對質量的不懈追求

          Spring 框架的優點及缺點

          首先Spring 是一個框架,使用Spring并不代表代碼質量的提高,就像蓋房子選擇用上海的地皮還是北京的地皮一樣,房子質量與土地所在的城市無關,與房子的具體設計方案和選料有關。
          使用Spring 等框架可以簡化很多基礎性的工作,配置好后可以方便構建業務應用。

          框 架使用多了會有局限的感覺,像小鳥被套在籠子里,無法飛出去,雖然在籠子里面吃喝不愁。目前編程的門檻越來越低,諸多開源框架廣泛傳播,幾乎沒有什么技術 門檻,會配置就會編程,而一個好的DBA對軟件性能會有很大提高,軟件的核心邏輯最終會轉移到對數據庫的操作上,而且對目前從事的工作來講,感覺技術的瓶 頸越來越多的局限在對數據庫的操作上,下一步要認真提高下了。

          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對應階段,不容易判斷問題所在。

          posted on 2009-11-14 14:01 BlakeSu 閱讀(227) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 青龙| 金溪县| 五指山市| 洮南市| 宝山区| 梧州市| 河津市| 阳信县| 延边| 井陉县| 车险| 锡林浩特市| 平安县| 大化| 金堂县| 陆丰市| 峡江县| 嘉鱼县| 肥东县| 图们市| 高阳县| 盐亭县| 蒙山县| 北安市| 冕宁县| 合肥市| 临洮县| 辽阳县| 都江堰市| 青阳县| 自治县| 霸州市| 获嘉县| 敦煌市| 泗阳县| 东山县| 福鼎市| 闸北区| 定远县| 中方县| 台山市|