一、什么是DRY?
Don’t repeat yourself,簡稱DRY,是軟件工程中廣泛且被普遍接受的最佳實踐。DRY原則上是要求系統中的每一部分,都必須單一、明確、權威地表達。其實就是可靠地開發軟件、并讓開發項目更易于理解和維護。DRY原則中最基本的就是不要重復代碼。
在軟件工程中,“干凈的代碼”是一種理想的追求。能夠辨別重復,并通過適當的實踐消除重復的程序員,比一直在重復代碼的程序員,寫的代碼會更清潔。
很多人將DRY限定為“不要寫重復的代碼”,但它更強調的是對知識和意圖的重復。
二、重復是怎樣發生的?
編程過程中,我們所見到的大多數重復問題,大致可以分為以下四類:
1、強加的重復 大多數人都在無力避免重復的情形下工作過,
比如有的項目可能會使我們重復共有的定義和過程,或有的編程語言自身要求某些重復信息的結構。
比如文檔規范中經常強調的注釋,但事實上無用的注釋會使代碼變得糟糕。如果運用DRY的法則,就是把淺顯易懂的知識放在代碼中,把注釋保留給其他高級的說明。否則,就是在重復知識。
2、無意的重復 來自代碼設計中的錯誤,通常會讓開發者意識不到他們在重復信息。
3、無耐性的重復 這種重復通常是由于開發者偷懶,認為重復會讓功能的實現變得更容易。也會因項目時間的限制,而驅使一部分開發者拷貝、修改原來的代碼,走捷徑。
欲速則不達,重復也許可以節省幾秒鐘,但一旦出現了問題,反而會花費更多的時間去修復。
4、開發者之間的重復 最典型的就是下面這個例子。美國的一個州,在對政府電腦系統進行千年蟲問題檢查時,審計發現有超過一萬個程序,每個程序都包含不同版本的社保號驗證代碼。
同一個團隊中不同開發者的重復,可能是最難檢測和處理的。這些重復可能存在好多年,都不容易被發現,會導致各種維護問題。
三、初步實現DRY,可以嘗試這樣做
1、停止重復不必要的代碼;
2、當代碼重復 3 次時,停止并思考是否需要進一步抽象代碼或工具類;
3、對歷史遺留代碼增加測試程序,梳理邏輯,增加說明文檔并通知相關人員;
4、適時講解項目,明確項目目前已有的功能和代碼,減少因不了解項目而造成的重復。
到此,關于“什么是DRY”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注本站網站,小編會繼續努力為大家帶來更多實用的文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
中歐滬深300指數多空分級基金怎么買?好像沒有以中歐滬深300lof為標的的分級基金。做空滬深300e TF有兩種:華泰白銳滬深300e TF和嘉實滬深300e TF。滬深300ETF都是通過融資融券變相做空,但和股指期貨做空還是有很大區別的,主要是杠桿比例相差很多:股指期貨保證金一般是20%,也就是最大杠桿是5倍;融資融券最高只有50%,也就是2倍杠桿(各個期貨、證券公司的要求不一樣,但大致相同...
@真智新坐標如果不是自己手機下單,但是知道快遞單號,如何快速查詢該號的物流軌跡?走了一段彎路還發現了一個很有用的APP。以前我們店主進貨的時候會把貨物的快遞單號發到微信上,這樣我們就可以隨時查看貨物的物流軌跡。發貨人使用的快遞公司經常更換。如果發貨人用的是大云快遞,我會先在網上搜索“大云快遞單號查詢”,然后輸入運單號,找到貨物的物流軌跡。如果發貨人用的是百世快遞,我會在網上輸入百世快遞單號進行查詢...
韓國單身稅要收多少錢?單身稅是一種特殊稅。隨著世界上適婚單身人口的不斷增長,世界上許多人都提議對這些適婚單身人士征收所謂的“單身稅”?,F代意義上的單身稅一般不是指設立單獨的稅目,而是指由于未婚原因,個人在納稅時無法享受到一些稅收減免政策,“實際”需要繳納比有配偶者更多的個人所得稅。最近,韓國政府推出的稅制改革計劃旨在有效解決韓國的低生育率和老齡化問題...