成人国产精品视频_精品国产影院_欧美日韩在线播放_国产福利电影一区_亚洲 欧美 日韩在线_成人精品二区

歡迎您訪問開發(fā)設(shè)計中常用原則之 DRY:不要重復(fù)自己的工作!

開發(fā)設(shè)計中常用原則之 DRY:不要重復(fù)自己的工作

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

干燥

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

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

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

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

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

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

authoritative是什么意思_意思是不是輕聲詞_意思是誰發(fā)現(xiàn)的

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

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

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

以下是一個好的設(shè)計

// more intuitive oneint counter,sum;

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

authoritative是什么意思_意思是誰發(fā)現(xiàn)的_意思是不是輕聲詞

奧卡姆剃刀

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

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

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

新澤西風格(越差越好)

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

意思是誰發(fā)現(xiàn)的_authoritative是什么意思_意思是不是輕聲詞

堅硬的

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

單一職責(SRP)

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

開放/封閉原則(OCP)

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

authoritative是什么意思_意思是誰發(fā)現(xiàn)的_意思是不是輕聲詞

里氏替換原則 (LSP)

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

接口隔離原則(ISP)

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

依賴倒置原則 (DIP)

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

意思是不是輕聲詞_authoritative是什么意思_意思是誰發(fā)現(xiàn)的

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

抽象接口不應(yīng)該依賴于具體實現(xiàn)。具體實現(xiàn)應(yīng)該依賴于抽象接口。

這個很像設(shè)計模式里的Adaptor模式。

下圖解釋了這一原理。

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

系統(tǒng)性紅斑

關(guān)注點分離是處理復(fù)雜性的一個原則。由于關(guān)注點混合在一起會大大增加復(fù)雜性,因此能夠?qū)⒉煌年P(guān)注點分離并分別處理是處理復(fù)雜性的一個原則和方法。這和 SOLID 中的 SRP 非常相似。

楊吉

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

為您推薦

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

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

2024-07-28 20:57

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

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

2024-07-28 20:35

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

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

2024-07-28 11:49

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

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

2024-07-28 10:16

2023年河北省城鄉(xiāng)建設(shè)學校錄取分數(shù)線

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

2024-07-28 10:05

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

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

2024-07-27 17:35

加載中...
主站蜘蛛池模板: 欧美va在线 | 亚洲色图日韩精品 | 日韩 亚洲 制服 欧美 综合 | 欧洲亚洲一区 | 欧美成人一区二区 | 精品91精品91精品国产片 | 一本一道| 国内精品久久久久久久97牛牛 | 激情综合网激情 | 国自产拍亚洲免费视频 | 欧美亚洲第一页 | 精品在线免费播放 | 国产一区二区精品久久91 | 国产日韩视频一区 | 麻豆精品国产 | 中文国产成人精品久久96 | 欧美一级高清片欧美国产欧美 | 亚洲 欧美 自拍 另类 | 中文在线第一页 | 午夜精品久久久久久91 | 亚洲视频网站在线观看 | 在线播放国产一区二区三区 | 国产精品乱| 国产高清视频免费在线观看 | 国产中文字幕视频 | 夜夜操夜夜爱 | 2020年国产高中毛片在线视频 | 亚洲一区免费观看 | 一区二区不卡久久精品 | 久久无码av三级 | 久久久久久久国产精品 | 精品一区二区三区在线视频 | 91麻豆视频网站 | 香港经典a毛片免费观看…伊人色综合久久 | 国产精品久久二区三区色裕 | 久久久久久久国产精品 | 一级毛片免费下载 | 久久综合中文字幕一区二区 | 中文字幕第一页亚洲 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产午夜视频在线观看 |