現(xiàn)在都在談?wù)撊鎸W(xué)習(xí)代碼的事情景殷,這是件極好的事情。
比如你今天的工作是統(tǒng)計(jì)信息的錄入垦藏,如果你恰好學(xué)會(huì)了腳本處理,你可以花1小時(shí)寫個(gè)腳本簡(jiǎn)化流程伞访,1小時(shí)錄入信息掂骏。四舍五入的話等于偷懶一整天。
我們這個(gè)行業(yè)是一個(gè)偉大的行業(yè)厚掷,在工作意識(shí)上弟灼,我們是十分主張偷懶的,而且越懶越好冒黑,越懶越遭人夸田绑。
如果你想學(xué)習(xí)這個(gè)技能請(qǐng)去看《Python:從入門到修禪》。筆者這里就不獻(xiàn)丑了抡爹。
話歸正題掩驱。今天想說的是關(guān)于耦合性。為了滿足學(xué)霸的準(zhǔn)確定義的需求冬竟,我這里拋出百度百科的定義欧穴。
耦合性(Coupling),也叫耦合度诱咏,是對(duì)模塊間關(guān)聯(lián)程度的度量苔可。耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜性、調(diào)用模塊的方式以及通過界面?zhèn)魉蛿?shù)據(jù)的多少袋狞。模塊間的耦合度是指模塊之間的依賴關(guān)系焚辅,包括控制關(guān)系映屋、調(diào)用關(guān)系、數(shù)據(jù)傳遞關(guān)系同蜻。模塊間聯(lián)系越多棚点,其耦合性越強(qiáng),同時(shí)表明其獨(dú)立性越差湾蔓。軟件設(shè)計(jì)中通常用耦合度和內(nèi)聚度作為衡量模塊獨(dú)立程度的標(biāo)準(zhǔn)瘫析。劃分模塊的一個(gè)準(zhǔn)則就是高內(nèi)聚低耦合。
對(duì)于一個(gè)初學(xué)者默责,和非從業(yè)者這些定義看完只會(huì)讓你腦袋發(fā)漲贬循,對(duì)我等閱讀障礙癥患者尤甚。那么如何簡(jiǎn)單理解呢桃序。
1.什么是耦合杖虾?
為了簡(jiǎn)單理解,我舉出一個(gè)例子媒熊。
我們公司的同事都愛下班后一起玩《守望屁股》(一款暴雪的網(wǎng)絡(luò)游戲)奇适。但是從效果上看分為2派:
- A派,沉迷屁股無法自拔芦鳍,在不忙的時(shí)候嚷往,經(jīng)常通宵。
- B派柠衅,因?yàn)?D暈眩問題皮仁,或者因?yàn)橐闩笥压浣譀]有時(shí)間沉迷。喜歡把屁股作為消遣茄茁。
有一天公司需要開發(fā)一個(gè)緊急項(xiàng)目魂贬,所有工作人員集體閉關(guān)1個(gè)月做開發(fā)巩割。結(jié)果也會(huì)不同:
- A派的人在寂寞的夜想玩守望屁股而不得裙顽,渾身難受,甚至影響工作進(jìn)度宣谈。
- B派的人因?yàn)椴怀撩杂蹋瑫?huì)找些其他的事情作為消遣。比如晚上和女朋友通電話闻丑,站在鄙視鏈的高處虐狗漩怎。
這個(gè)例子的主題就是依賴關(guān)系的程度,如果太過于依賴某個(gè)東西嗦嗡,當(dāng)它突然變化時(shí)會(huì)給你造成很大的損傷勋锤。
我第一次認(rèn)識(shí)到這個(gè)問題,是在總結(jié)工作的過程中想起來的侥祭。筆者是個(gè)程序員叁执,因?yàn)榻荒険Q了工作茄厘,已經(jīng)長(zhǎng)期不和產(chǎn)品相愛相殺了,忽的懷念那段日子谈宛,就在腦袋里面咂摸了咂摸次哈,想起了原來互撕的各種理由,其實(shí)很多地方自己也不占理吆录。
人就是這個(gè)樣子窑滞,在當(dāng)時(shí)死不退讓;過去后再回頭看恢筝,你好我好大家好哀卫。
其實(shí)當(dāng)時(shí)很多問題都可以歸咎到自己代碼依賴性太強(qiáng),一旦需求有相關(guān)更改撬槽,牽連的東西太多導(dǎo)致工時(shí)延長(zhǎng)嚴(yán)重聊训。當(dāng)然如果產(chǎn)品遵循需求足夠明確,在一個(gè)迭代中不更改需求恢氯,這個(gè)延長(zhǎng)deadline的問題也可以避免來著带斑。
2.耦合的程度越低,你越幸福
就像上面的例子勋拟,你對(duì)別的東西依賴越少勋磕,你越自由,甚至越幸福敢靡。
比如說工作挂滓。每個(gè)人都對(duì)工作有著莫大的期許⌒ル剩靠它吃穿赶站,靠它養(yǎng)房養(yǎng)車,靠它贏得認(rèn)同感纺念。你會(huì)說誰都會(huì)對(duì)工作有依賴贝椿,沒錯(cuò),誰都會(huì)陷谱。就像剛才說的這是個(gè)程度問題烙博。在代碼中模塊和模塊之間也會(huì)有依賴,但是合適的程度讓人舒適烟逊,依賴過度會(huì)讓人痛苦渣窜。
或許你也有這種經(jīng)歷,正在經(jīng)手的項(xiàng)目根本離不開你宪躯,如果時(shí)間短還好乔宿,偏偏這項(xiàng)目一年半載的還弄不完,這絕對(duì)會(huì)影響你的生活舒適度访雪。
如果出現(xiàn)這種情況详瑞,應(yīng)該盡快“解耦和”囤官,這是編程用語,也就是減少依賴蛤虐。
把手頭的事情先按時(shí)間分個(gè)先后党饮,再按先后分個(gè)優(yōu)先級(jí),看看哪些是一定要現(xiàn)在自己做的驳庭,哪些可以分出去給別人做刑顺。
當(dāng)然,這個(gè)依賴還可能是各個(gè)地方饲常,
比如是你房間里面占地方又舍不得扔的東西蹲堂。
比如是你曾經(jīng)考試失利,每次考試都會(huì)想起來的糟糕回憶贝淤。
3.減少依賴這件事并不是一蹴而就的
沒錯(cuò)柒竞,經(jīng)驗(yàn)主義往往不適用于那些不清楚實(shí)際情況的人。
我發(fā)現(xiàn)沒有這個(gè)優(yōu)化意識(shí)播聪,或者實(shí)際經(jīng)驗(yàn)的人一定會(huì)先經(jīng)歷加強(qiáng)依賴的過程朽基。
這會(huì)讓你吃些苦,如果實(shí)際情況是工作的話离陶,那就少不了要加班了稼虎。就像筆者,為此曾經(jīng)經(jīng)歷過幾個(gè)不眠之夜招刨。
直到你能意識(shí)到這個(gè)東西壓在你身上有點(diǎn)重了霎俩,或者極其幸運(yùn)有人提醒你這個(gè)過度依賴已經(jīng)發(fā)生了。
什么時(shí)候加強(qiáng)依賴沉眶,什么時(shí)候減少依賴沒有什么經(jīng)驗(yàn)可言打却,如果非要說就應(yīng)該是:在正確的時(shí)間做正確的事情。
生活中的“低耦合”是一種自由的體現(xiàn)谎倔,也是幸福的一種體現(xiàn)柳击。