跳至內容

一改而且干焦一改

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 00:42 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

一改而且干焦一改(英語:Once and only once,簡稱 OAOO), 閣叫做Don't repeat yourself(莫重複你家己,簡稱 DRY), 抑是一个規則,實現一改(One rule , one place)是物件導向程式設計的基本原則,程式設計師的行事準。旨佇咧軟體開發中間,減少重複的資訊。

DRY 的原則是「系統每一部份,攏必須愛有一个單一的、明確的、權威的代表」,是講(是由人來編寫蓋機器生的)代碼佮測試所構成的系統,必須會當表達所應表達的內容,但是袂當含有任何重複代碼。當 DRY 原則予成功應用的時陣,一个系統中任何單個元素的修改攏無需要佮其他的元素發生改變。此外,佮之邏輯比其他的元素的變化攏是會當預見的、齊勻,並且保持仝步。

起源

其實起源是已經袂當考,一般認為講這个原則上代先由 Andy Hunt 和 Dave Thomas 𪜶的冊 The Pragmatic Programmer 中提出。因為極限編程方法的創始者之一肯特 ・ 貝克總結佮宣傳予其實做人知。

DRY 佮 WET

違反DRY原則的解決方案通常予人號做WET,其實有足濟種全稱,包括講「Write everything twice」(共每一个物件寫兩改)、「We enjoy typing」(阮就是愛拍字)抑是「Waste everyone's time」(浪費逐家的時間)。

WET大致使分做四種:

一 .Imposed duplication:開發者認為不得不的重複二 .Inadvertent duplication:開發者無智覺的重複三 .Impatient duplication:開發者複製家己抑是講這个人的程式碼造成的重複四 .Interdeveloper duplication:無仝開發者間共同開發抑是交接造成的重複有時仔,為著可讀性,抑是避免講鋪排去,抑是早重構,應該放棄 DRY 原則。

參考文獻

  • Kent Beck 的 Extreme Programming Explained 一冊。
  • 《設計模式來精解》二版第十章。
  • WikiWikiWeb 關於本原則的解說