解耦的重要性
已久,起初對他的認識其實是在一次和好友談關于SSH 框架的問題時,無意說的一句話:"解耦是啥
!?我想想啊。。。有了!就好比男女朋友相互之間的依賴性,貌似作用不大,時間長了作用就大
了。",最后的討論結果是,SSH框架缺了誰都可以,就是唯有Spring是必不可少的。說白了,解耦
是什么,解耦就是降低對象之間的依賴。
1。技術中的解耦
??? 剛開始學習SSH ,覺得為何一個簡單的實現需要如此多的配置,是否會使開發變得更加復雜。
其實技術架構因系統大小,復雜度靈活設計。SSH是MVC的很好體現,在大型應用開發時,更能體現
其重要性,便于團隊開發,代碼管理的問題,系統易維護易集成的問題。為什么出現MVC 開發模式
,為什么出現SSH 技術框架,除了在技術實現提供便利之外,更大的是為了解耦,降低視圖層,業
務層,數據處理層之間的依賴。
??? 現在很多都用WebService做為接口的主要開發技術,為什么會出現WebService這種跨平臺的在
線應用服務設計,它解決了多語言跨平臺應用程序集成問題,降低了應用程序對于語言和平臺的依
賴;解決了B2B商務交易集成問題,降低了應用程序對于企業業務范圍的依賴;解決了組件重用問題,
降低了應用程序對某特定組件的依賴。以及后來延伸出現的SOA 面向服務架構等等,都是為了解決
同一個問題,解耦,降低應用程序之間的依賴。
??? 解耦的源動力還是因為需要控制成本,控制因為變化產生的成本,這種變化包括需求變更、設
計變更、Bug 修改等等,當變化發生的時候,第一時間需要確定變化影響的范圍,在耦合度很高的
系統里任何一個變化都牽一發動全身,而變更的范圍直接決定了工作量的大小,所以,應當把變化
影響的范圍控制在合適的范圍里,而這個合適的范圍就是對象內部。
2。團隊中的解耦
??? 剛來到團隊,第一次接觸前后臺分開,兩種語言,兩種完全不同技術架構同時開發的分布式系
統架構。有人可能會問,這完全可以用一種語言,一個技術架構解決啊?為何搞的這么復雜。前幾
天完全用Java Web體系架構解決一個需求,幸好業務不是非常復雜,搞完后總結了一下,前后臺架
構的必要性。當然在技術實現上的需要會用到多語言分布式開發,這時其實也是對技術的解耦。那
我們看另一個問題,前臺技術架構相對復雜,業務要求相對要低。而后臺業務性要求很高,技術要
求相對較低。這時我們在處理復雜的需求時,尤其是在大型項目開發中我們就需要在架構分析,人
員調配,工作量估算等問題上去盡量縮短開發周期。這時,怎么解決?解耦,前后臺分開,恰巧很
好的解決了這個問題,降低了技術與業務的依賴,前臺和后臺的依賴。
3。人際中的? 解耦
??? 兩個人在一起我就的應該適當的降低相互之間的依賴性,兩人之間有些矛盾有些時候源于一方
的無理取鬧,不理性的分析解決問題,這往往是因為一方太依賴對方,無論是情感依賴或者是物質
依賴。怎么解決?解耦吧。降低兩人之間的依賴程度。
??? 一部分人都會多少有這樣幾個想法,從小是否都會想,自己不如某些家庭生活的好。長大了,
又是否會抱怨人家父母什么都為孩子準備好了一切,而我們自己卻要努力打拼去買房結婚,尤其在
這個泡沫橫飛的年代。那這究其原因,還是我們太依賴父母,父母沒有說是不想自己孩子好的,其
中辛酸唯我們為人父人母才會了解吧。這時就需要我們獨立,獨立去承受一些負擔,獨立去承擔一
些責任。獨立?怎么解決?解耦吧。降低我們與父母之間的依賴。
??? 一切皆對象,這里的對象并非單指類實例化后生成的對象,一個模塊也是一個對象,一個系統
也是一個對象,就像人體的組成是從細胞開始,然后是組織和身體一樣。細胞的功能是完整的、自
治的,組織和身體也是同樣的,因此對象也應該具有相同的特點,如此,即可認定對象是解耦了的
。對象可以解耦,那么童鞋們,技術是否可以解耦呢?團隊是否也可以解耦呢?人際是否可以解耦
呢?那么還有什么是不可解耦的呢?
總結
- 上一篇: 「手把手教你」用Python量化海龟交易
- 下一篇: WebSocket - 一篇文章读懂we