為什麼我停止使用Spring?

banq發表於2013-12-15


這是來自 JOHANNES BRODWALL 的一篇博文,他曾經在Dzone上發表謙卑的架構師一文引發了爭論,在這篇博文中他正式宣告停止使用Spring。下面是原文大意翻譯:

我對Spring和依賴注入框架的意見引起爭論,我是挪威Spring最早的使用者之一,我們開發一個龐大系統,我們最終不得不考慮一些事情,如XML配置的重用機制,Spring的@Autowire和元件掃描功能幫我們解決這個問題,但是作為回報,降低了我們質疑整個原始碼的能力,將我們開發人員隔離在一個個小小的孤島上,這些框架往往以複雜性為文化,工具 文件和其他不必要的層等待。

後來我嘗試不使用依賴注入框架來構建應用程式,讓我決定什麼使用new,什麼時候有一個setter或構造器引數,什麼型別能被作為依賴,哪個型別建立會與底層耦合。我發現了一些DI容器能改進設計的好處,同時,我去除了容器,我的解決方案程式碼變得越小了,易於瀏覽和理解,容易測試,我陷入了兩難底部。

我發現,使用容器的成本非常高,它提高了複雜性和規模,降低了凝聚,對於我來說,小的系統價值遠遠大於建立一個松耦合後又松耦合的系統。

凝聚性和松耦合是對立,模組A重用模板B,模組A和B耦合了,B的變化會影響A,因此,重用和松耦合是對立,這時我偏重松耦合。當有衝突時,我將連貫性凝聚性看高於松耦合,而松耦合高於重用。Spring文化好像與這個正好相反(凝聚性最差)。



相關文章