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