3 回答

TA貢獻2019條經(jīng)驗 獲得超9個贊
這是一種平衡,而不是矛盾
DAMP和DRY并不矛盾,而是它們平衡了代碼可維護性的兩個不同方面。可維護的代碼(易于更改的代碼)是此處的最終目標(biāo)。
DAMP(描述性和有意義的短語)促進了代碼的可讀性。
要維護代碼,首先需要了解代碼。要理解它,你必須閱讀它。考慮一下您花多少時間閱讀代碼。這是很多。 DAMP通過減少讀取和理解代碼所需的時間來提高可維護性。
DRY(不要重復(fù)自己)促進代碼的正交性。
刪除重復(fù)可確保系統(tǒng)中的每個概念在代碼中都具有單個權(quán)威表示。對單個業(yè)務(wù)概念的更改會導(dǎo)致對代碼的單個更改。DRY通過將變更(風(fēng)險)僅隔離到必須更改的系統(tǒng)部分來提高可維護性。
那么,為什么復(fù)制在測試中更容易接受?
測試通常包含固有的重復(fù),因為它們一遍又一遍地測試相同的東西,只是輸入值或設(shè)置代碼略有不同。但是,與生產(chǎn)代碼不同,此復(fù)制通常僅與單個測試夾具/文件中的方案隔離。因此,重復(fù)是最小和明顯的,這意味著它比其他類型的重復(fù)對項目造成的風(fēng)險更小。
此外,刪除這種重復(fù)會降低測試的可讀性。之前在每個測試中重復(fù)的細(xì)節(jié)現(xiàn)在隱藏在一些新的方法或類中。為了全面了解測試結(jié)果,您現(xiàn)在必須將所有這些部件重新組合在一起。
因此,由于測試代碼重復(fù)通常風(fēng)險較小,并且提高了可讀性,因此很容易看出它被認(rèn)為是可接受的。
作為一個原則,在生產(chǎn)代碼中支持DRY,在測試代碼中支持DAMP。雖然兩者同樣重要,但只要有一點點智慧,你就可以為自己提供平衡。

TA貢獻1828條經(jīng)驗 獲得超13個贊
DAMP - 描述性和有意義的短語。
“DAMP not DRY”重視代碼重用的可讀性。在測試用例中DAMP不干的想法是測試應(yīng)該易于理解,即使這意味著測試用例有時會重復(fù)代碼。
另請參閱單元測試中是否可以容忍重復(fù)代碼?關(guān)于這一觀點的優(yōu)點的一些討論。
它可能是由Jay Fields創(chuàng)建的,與Domain Specific Languages相關(guān)。

TA貢獻1805條經(jīng)驗 獲得超9個贊
“干”是“不要重復(fù)自己”
這個術(shù)語用于告訴人們編寫可重用的代碼,這樣您就不會一遍又一遍地編寫類似的代碼。
“DAMP”是“描述性和有意義的短語”。
這個術(shù)語旨在告訴您編寫代碼,這些代碼可以讓正在查看它的人輕松理解。如果您遵循這一原則,您將擁有長而描述性的變量和函數(shù)名稱等。
- 3 回答
- 0 關(guān)注
- 852 瀏覽
添加回答
舉報