為什麼我停止使用Spring?
這是來自 JOHANNES BRODWALL 的一篇博文,他曾經在Dzone上發表謙卑的架構師一文引發了爭論,在這篇博文中他正式宣告停止使用Spring。下面是原文大意翻譯:
我對Spring和依賴注入框架的意見引起爭論,我是挪威Spring最早的使用者之一,我們開發一個龐大系統,我們最終不得不考慮一些事情,如XML配置的重用機制,Spring的@Autowire和元件掃描功能幫我們解決這個問題,但是作為回報,降低了我們質疑整個原始碼的能力,將我們開發人員隔離在一個個小小的孤島上,這些框架往往以複雜性為文化,工具 文件和其他不必要的層等待。
後來我嘗試不使用依賴注入框架來構建應用程式,讓我決定什麼使用new,什麼時候有一個setter或構造器引數,什麼型別能被作為依賴,哪個型別建立會與底層耦合。我發現了一些DI容器能改進設計的好處,同時,我去除了容器,我的解決方案程式碼變得越小了,易於瀏覽和理解,容易測試,我陷入了兩難底部。
我發現,使用容器的成本非常高,它提高了複雜性和規模,降低了凝聚,對於我來說,小的系統價值遠遠大於建立一個松耦合後又松耦合的系統。
凝聚性和松耦合是對立,模組A重用模板B,模組A和B耦合了,B的變化會影響A,因此,重用和松耦合是對立,這時我偏重松耦合。當有衝突時,我將連貫性凝聚性看高於松耦合,而松耦合高於重用。Spring文化好像與這個正好相反(凝聚性最差)。
相關文章
- 為什麼我停止使用IPFS和分散式Web? - withblue分散式Web
- 為什麼Facebook不能停止使用PHP?PHP
- [譯] 為什麼你應該停止使用 Git rebase 命令Git
- 說說我為什麼看好Spring Cloud AlibabaSpringCloud
- 我為什麼要做IT
- 我為什麼使用 JavaJava
- 什麼是Spring Boot?為什麼要學習Spring Boot?Spring Boot
- 為什麼我們需要 VuexVue
- 我們為什麼要用RedisRedis
- 我們為什麼而工作
- 我為什麼要使用Webpack?Web
- 為什麼我喜歡JavaJava
- 前端,我為什麼不要你前端
- Spring Boot 為什麼這麼火?Spring Boot
- GC是什麼?為什麼我們要去使用它GC
- 什麼是Web workers?為什麼我們需要他Web
- 我為什麼不再推薦RxJavaRxJava
- 為什麼我要用GoEasy替代WebSocketGoWeb
- 我為什麼從php轉go?PHPGo
- Executors:為什麼阿里不待見我?阿里
- 為什麼我還在使用JavaEE?Java
- 【React】為什麼我不再使用setState?React
- 為什麼我要學習“機器學習”?機器學習
- 我為什麼選擇 Angular 2?Angular
- 為什麼我要用C寫遊戲遊戲
- 我能為開源做些什麼?
- 為什麼我不再用 .NET 框架框架
- 我為什麼不喜歡框架框架
- 為什麼我不再使用MVC框架?MVC框架
- 我為什麼寫《致IT同仁》薦
- 我為什麼選擇成為獨立開發者
- 我為什麼說AI推理晶片大有可為AI晶片
- Spring IOC 為什麼能降低耦合Spring
- 我為什麼看好騰訊START雲遊戲遊戲
- 我們為什麼需要async/await ?AI
- 我們為什麼需要 lock 檔案
- [譯] 為什麼我們需要 Web 3.0Web
- 我為什麼冒險寫QuarkAdmin!