99热婷婷-99热网-99热网址-99热亚洲-国产精品v欧美精品∨日韩-国产精品videosse

歡迎您訪問開發設計中常用原則之 DRY:不要重復自己的工作!

開發設計中常用原則之 DRY:不要重復自己的工作

更新時間:2024-07-28 20:44:06作者:佚名

干燥

這里的DRY是Do Not Repeat Yourself的縮寫,詳細解釋可以參考Every piece of knowledge must have a single, unambiguous, authority at a system這個嚴謹的定義,也就是說任何知識在系統內都必須只有一個單一的、明確的、權威的表述。???這是什么意思?沒看懂。簡單來說就是不要重復你工作的任何一部分。比如有一段代碼是用來清除字符串中的HTML符號的,這個函數會在多個程序中用到,如果在每一處都用到下面的代碼

html = html.replaceAll("\<.*?>","") 
html = html.replaceAll(" ","");
html = html.replaceAll("&"."");

如果只是在 2、3 處用到(Martin 曾經提到過 Rule of three,意思是如果一段代碼被復制了 3 次以上,就應該重構為單獨的子方法)authoritative是什么意思,你可能直接復制過來用就行,但是想想看,如果在 2、3 百處用到會怎么樣?如果上面又需要修改(如下圖)網校頭條,你是不是也要在這 2、3 百處修改代碼呢?

html = html.replaceAll("<"."<");
html = html.replaceAll(">".">");

因此,DRY 規則建議使用子方法,這樣您只需修改一次。類似的編程思想包括 DIE(Duplication is Evil)、SPoT(Single Point of Truth)、SSOT(Singel Source of Truth)。順便說一句,DRY 的對應詞是 WET,意思是“把所有東西都寫兩遍”或“我們喜歡打字”。:-)。

KISS 是 Keep it simple, stupid(或 Keep it short and simple)的縮寫,意思是保持設計簡潔、通俗,這跟現在流行的“極簡主義風格”很像。

authoritative是什么意思_意思是不是輕聲詞_意思是誰發現的

使用 KISS 有什么好處?以下是其中一些:

在軟件設計領域,有一些技術實現了這個本質,比如 DDD(領域驅動設計)和 TDD(測試驅動開發),將代碼集中在真正需要的功能上,不做任何額外的工作。另一個建議是不要試圖通過注釋來提高代碼的可讀性,而是從代碼本身開始改進。例如,下面是一個不太好的變量定義

// i is for 'counter' and j means total sum
int i, j;

以下是一個好的設計

// more intuitive oneint counter,sum;

與此相呼應的是奧卡姆剃刀原理或簡單定律:

authoritative是什么意思_意思是誰發現的_意思是不是輕聲詞

奧卡姆剃刀

最簡單的(解釋|解決方案)通常是最好的。

通常最簡單的解決方案就是最好的解決方案

具體對于 Java 編程,這里有一些練習 KISS 的建議:

新澤西風格(越差越好)

新澤西風格,又稱“更糟糕的是更好的”。該原則指出,系統的質量不會隨著新功能的增加而提高。例如,一個只提供少量功能但用戶容易使用的軟件可能比一些提供大量令人眼花繚亂功能的“大雜燴”軟件更好。例如Linux下的vi/vim,瀏覽器中的Chrome。

意思是誰發現的_authoritative是什么意思_意思是不是輕聲詞

堅硬的

SOLID 是幾種編程哲學的統稱,即 SOLID(單一職責,開放封閉,里氏替換,接口隔離和依賴倒置)。我們來一一解釋一下:

單一職責(SRP)

單一職責原則。Robert 將其描述為“一個類應該只有一個改變的理由”,即有(且只能有)一個理由來修改一個類(或模塊)。簡單地說,一個類或模塊只能負責一個功能。例如,有一個模塊負責生成報告。可以想象,修改這個模塊可能有兩個理由,一是需要改變報告的內容,二是需要改變報告的格式。這兩個改變是由于不同的原因,一個是為了美化內容的布局。“單一職責”規則認為authoritative是什么意思,這是兩個不同的職責,所以應該分成兩個不同的子模塊。如果把兩個東西放在一起,不同的改變是由于不同的原因,這種設計就不好。這個規則有利于系統中模塊的解耦。

開放/封閉原則(OCP)

開放-封閉原則。Bertrand 將其描述為“軟件實體(類、模塊、函數等)應該對擴展開放,但對修改封閉”,這意味著對于一個實體(類、模塊、方法等)來說,它的功能行為允許在不修改源代碼的情況下進行擴展。換句話說,你可以把新代碼放入一個新的類或方法中,而新類通過繼承重用現有的代碼和函數。只有在修復 bug 時才會修改現有的代碼。這個原則主要用于減少添加新功能時引入新 bug 的風險。

authoritative是什么意思_意思是誰發現的_意思是不是輕聲詞

里氏替換原則 (LSP)

里氏替換原則。原文是“派生類必須可替換其基類。”,意思是派生類(子類)對象可以用來替換其基類(超類)對象。比如說,假設S是T的子類,那么T類的任何一個具體實現對象都可以替換掉S的實現對象出現的地方,而具體調用者并不知道是父類還是子類,也不會出現錯誤。比如下圖中,調用者可以將1替換成2。

接口隔離原則(ISP)

接口隔離。原文是多個客戶端專用接口優于一個通用接口。意思是多個專用的客戶端接口比一個用途廣泛的接口要好。將接口做細粒度,使之專用于客戶端。應該定義一系列粒度合適的接口(如下圖所示),讓每個客戶都能實現特定的功能請求。換句話說,客戶端不應該依賴于它不使用的功能方法。這個原則的目的是將系統解耦,以便于重構、更改和重新部署。

依賴倒置原則 (DIP)

依賴倒置原則。原文是“Depend upon Abstractions. Do not depend upon concretions”。意思是方法應該遵循“依賴于抽象,而不是依賴于實例”。這個原則規定:

意思是不是輕聲詞_authoritative是什么意思_意思是誰發現的

高級模塊不應該依賴于低級模塊,兩者都應該依賴于抽象接口。

抽象接口不應該依賴于具體實現。具體實現應該依賴于抽象接口。

這個很像設計模式里的Adaptor模式。

下圖解釋了這一原理。

圖1中,高級對象A依賴于底層對象B的實現;圖2中,高級對象A對底層對象的需求被抽象成一個接口A,底層對象B實現了接口A,這就是依賴反轉。

系統性紅斑

關注點分離是處理復雜性的一個原則。由于關注點混合在一起會大大增加復雜性,因此能夠將不同的關注點分離并分別處理是處理復雜性的一個原則和方法。這和 SOLID 中的 SRP 非常相似。

楊吉

它是“You aren't gonna need it”的縮寫,字面意思是“你以后不會需要它”。這是極限編程中的一個編程思想。意思是你永遠不要因為預期會用到某個功能就去寫一段代碼來實現它。只有當出現問題并且你確實需要這個功能時,你才應該寫它。

為您推薦

什么是自由教育:陳克艱老師的譯作,帶來深刻啟發與思考

譯按:《什么是自由教育?不管這里還可能隱含什么結論,肯定隱含的一個結論是:自由教育不能是簡單的教導。“自由教育是在文化里的教育。把自己限制在西方文化上,我們豈不是判定自由教育是一種地方主義(parochialism)?我們聽過柏拉圖的建議:教育在最高義上是哲學。

2024-07-28 20:57

be attached to 的意思、用法及例句解析

to的意思是:附屬于,喜愛;愛慕1、一般來說,attach后習慣接to,而不接介詞with。to...(發票附在……上),這種用法在商業信函中比較常見。with...。4、attach可以用在一般現在時、一般過去時、將來時、完成時、進行時(當attach用作不及物動詞時,罕用進行時)中。

2024-07-28 20:35

2021 年 12 月英語六級語法:first 與 at first 的用法區別匯總

2021年12月英語六級語法用法匯總first的用法區別之類的詞。先想后說。等詞語相呼應。()起初這活兒很累,不過后來我習慣了。起初他們生活得很幸福,但后來就開始出問題了。last不是一對反義詞組,后者的意思是“終于”“最終”。她最后把一切準備好了。最后公共汽車來了,我已等了半小時。

2024-07-28 11:49

2024 年除夕高速免費嗎?免費時段起止時間及車輛類型公布

2024年除夕高速免費嗎2024年春節假期小型客車2024年春節假期小型客車免費通行時段起止時間為:2月9日(除夕)00:00—2月17日(正月初八)24:00,共計9天。免費時間怎么算?春節加班費是哪三天春節加班費三倍工資是在春節期間的農歷正月初一、初二、初三加班可以獲得三倍工資。

2024-07-28 10:16

2023年河北省城鄉建設學校錄取分數線

復試分數線、以及錄取人數①環境藝術設計(學碩):復試最低分366分、第一志愿錄取人數1人②環境藝術設計(專碩):復試最低分368分、第一志愿錄取人數24人①環境藝術設計(學碩):復試最低分376分、第一志愿錄取人數0人②環境藝術設計(專碩):復試最低分365分、第一志愿錄取人數20人

2024-07-28 10:05

熟詞偏義:I ask you 可不是我問你,那是什么意思?

“熟詞偏義”是英語中常見的情況,看似每個單詞都認識,連在一起就不知道是什么意思。you就翻譯成“我問你”,真的不是!you真正的意思是:用來強調你有多么看不慣或者不贊成某個事物。或者說:這叫什么事啊!下面來考考大家,看看你能答對多少~本期答案就在下面公布,看看你是否全部答對呢?

2024-07-27 17:35

加載中...
主站蜘蛛池模板: 91福利国产在线在线播放 | 四虎在线永久视频观看 | 好吊操这里只有精品 | 天天爱综合 | 五月激情站 | 热久久最新 | 久久综合亚洲鲁鲁五月天欧美 | 一级a性色生活片久久毛片 一级爱爱片一级毛片-一毛 | 手机亚洲第一页 | 国产在线播放91 | 成人一区视频 | 久久久精品免费 | 91视频网址入口 | 日韩亚洲国产综合久久久 | 国产在线观看91精品2022 | 91九色视频 | 视色4se视频在线观看 | 热久久视久久精品18国产 | 九九99九九精彩 | 77788色淫网站免费观看 | 99re这里只有精品66 | 97麻豆精品国产自产在线观看 | 亚洲性片| 色鬼综合网 | 欧美色视频网站 | 成年美女黄网站色视频大全免费 | 成人免费动作大片黄在线 | porn成人毛片| 男人扒开女人腿做爽爽视频网站 | 色婷婷色综合激情国产日韩 | 精彩视频一区二区 | 99情趣网| 怡红院日韩 | 思思在线精品 | 日本久久网站 | 四虎国产精品免费观看 | 亚洲激情视频在线 | 日韩久久网 | 开心激情久久 | 91免费在线视频观看 | 欧美一区二区三区激情啪啪 |