DRY原則和Shy原則

保障可維護性的主要訣竅是遵循DRY原則和Shy原則。

在一個系統的整個生命週期裏,理解和改動這類維護工做的比例通常很是之高。爲了維護的方便,要儘可能將系統劃分爲能夠獨立理解與改動的模塊。這就要在設計的時候注重DRY原則與Shy原則。不過,這兩條原則有必定的衝突,並不總能兼得,因而在追求的時候要重視分寸。設計

維護者的兩大困擾

有兩種狀況會給維護者增添很大的麻煩:一種是爲了調整一個效果,要改動無數個地方;一種是隻改動了一個地方,卻影響了不少效果。生命週期

在前一種狀況下,很是容易出現漏改的問題——由於須要改動的地方太多,有些應該改動的地方沒有改動;在後一種狀況下,很是容易出現誤改的狀況——由於被影響的效果太多,有些不應改動的地方跟着變了。class

不管出現那種情形,都會使得理解和改動設計變得困難。不過,只要在設計的時候秉持一些原則,這兩種事情均可以獲得有效的遏制。引用

DRY原則

DRY是「Don't Repeat Yourself」的縮寫。意思是說,在一個設計裏,對於任何東西,都應該有且只有一個表示,其它的地方都應該引用這一處。這樣須要改動的時候,只需調整這一處,全部的地方就都變動過來了。di

運用DRY原則的時候,有一個很微妙的事情是要認真判別兩樣東西是不是一回事。有時候也有「兩樣東西如今碰巧看起來是同樣的,可是並不能保證未來始終都同樣」的狀況。這種時候,極可能就有製造一點表面上的重複的必要了。工作

Shy原則

Shy不是任何東西的縮寫。這裏是取其字面意思,說系統的每一個部分都應該害羞一點,不要把只和本身有關的信息暴露給其它部分,同時也不要絕不客氣的依賴太多的其它部分。這樣一來,往後即可以放心的修改這些沒變暴露的東西,也不用太過擔憂本身依賴的東西發生了變化。ab

運用Shy原則的時候的主要挑戰在於釐清哪些東西適合被作成系統裏的獨立單元。特別是肯定獨立單元的大小。系統

兩條原則的平衡

DRY原則和Shy原則的目標是相同的,都是爲了加強系統的可維護性。一個很好的遵循了DRY原則和Shy原則的系統,被稱爲具備「正交性」的系統。

DRY原則和Shy原則在某種程度上是不能兼得的:想要一個系統夠DRY,就得儘可能把各部分裏相同的東西分離出去放在一塊兒,這不免就會致使不少部分都和分離出來的這些東西存在一些關係,從而不夠Shy;想要一個系統夠Shy,就得努力讓各部分都作得和其它部分沒有什麼曖昧,這不免就會導致每一個部分裏面都有一些原本能夠共同使用的內容,從而不夠DRY。

可是,實際須要的是能兼顧兩條原則的設計。這就須要追求每條原則的時候都注意保持必定的分寸。

相關文章
相關標籤/搜索