YAGNI原則是什麼? -oliverkumper
YAGNI 是You Ain't Gonna Need It(你不會需要它)的簡寫,是極限程式設計的關鍵原則。
YAGNI意思非常簡單:僅在您真正需要它們時才去做,而不是在您認為或預見將來可能需要它們時就提前做了!
您可以將YAGNI視為即時製造的擁護者。在這種情況下,製造業正在編寫程式碼並交付功能。只有當有人真的需求功能存在時,您才可以開始工作並建立它。否則,您將保持自己的懶惰!
它為什麼如此重要?沒有編寫的每一行程式碼都是時間,因此可以節省金錢。但是,甚至更多!它是:
- -更少的程式碼維護
- -更少的程式碼測試
- -事情發生變化時更少的程式碼可重構
- -更多時間用於更重要的功能
- -更多時間用於文件編制
而且還包括:
- -節省了編譯/移植的時間
- -節省了測試執行的時間
- -生成時/執行時節省了資源
- -不必以某種方式保留的知識
它可以防止什麼?如今,大多數軟體開發都是根據客戶的需求進行的。無論您是在產品公司,在提供開發服務的公司還是在其他地方工作。
總是會在某處某人想要具有某個功能。
是您的客戶要求具有某個需求的功能,還是產品經理響應客戶的反饋的功能。無論實際驅動者是誰,無論是早晚,這都是實際需求的體現。
您正確預見未來功能請求的機會非常低。因此,您很有可能實現某些功能,而不是您的實際利益相關者想要的功能。這就像玩彩票!
過早地執行某些操作很可能會導致一切都被丟棄。這是一個沒人真正喜歡的場景!然後,有時會發生另一種情況:沒有人真正需要該功能!
評論:
YAGNI就是為什麼要在開始編寫任何程式碼之前先確定需求的原因。使用者的需求很高,但是還有一些技術需求必須弄清楚,這樣才不會最終實現不必要的東西。
YAGNI是許多原則的核心。例如,開放-封閉原則。您可以設計所有可能的抽象,以便在發生更改時,可以透過新增程式碼而不是對其進行修改來應用它們。但這是不可能的。您無法預見所有潛在的變化。
banq評:防止使用YAGNI導致技術債務,技術債務是因為你沒有真正理解業務功能導致的,而YAGNI可能會影響你沒有去深入理解業務功能,當然理解業務功能不是預測業務功能。YAGNI雖然可以防止過度設計,也會導致設計不足。
相關文章
- java開閉原則是什麼?Java
- 什麼是依賴倒置原則
- 什麼是如何把握波段操作?波段操作的原則是什麼
- 程式設計的首要原則是什麼?程式設計
- 認知謬論:什麼是舍基原則?
- 精益專案的選題原則是什麼?
- 如何把握波段操作?波段操作的原則是什麼
- 【譯】什麼是SOLID原則(第1部分)Solid
- 【譯】什麼是SOLID原則(第3部分)Solid
- 【譯】什麼是SOLID原則(第2部分)Solid
- 軟體測試工作的目的和原則是什麼?
- 六西格瑪專案選題的原則是什麼?
- 公園無線覆蓋的設計原則是什麼?
- 實現精益生產的5個原則是什麼
- 精益生產的五大原則是什麼
- 什麼是遊戲使用者成長體系? 構建的原則又是什麼?遊戲
- 為什麼單件流是精益生產的首要原則?
- 【架構設計】保持簡單輕量設計的三個原則——DRY,KISS, YAGNI架構
- 原創:為什麼是javascript?JavaScript
- 【BGP乾貨】BGP線路原則詳解:是什麼?(動態/靜態)
- Python設計模式的六大原則分別是什麼?Python設計模式
- 波段操作技巧,強勢波段操作三原則,什麼是波段操作技巧
- 用例顆粒度劃分的原則是什麼?如何計算功能點?
- 我去,為什麼最左字首原則失效了?
- [OOD] 為什麼單一職責原則(SRP)是最難運用的
- 我面試幾乎必問:你設計索引的原則是什麼?怎麼避免索引失效?面試索引
- 面試官:物件導向的三大特性和五大原則是什麼?面試物件
- JavaScript 中的 SOLID 原則(四):“I”代表什麼JavaScriptSolid
- JavaScript 中的 SOLID 原則(一):“S”代表什麼JavaScriptSolid
- 程式碼審查“查”什麼?(5):SOLID原則Solid
- 軟體根據什麼原則、原理劃分模組
- 什麼是規則即程式碼 (RaC) - brcommunityUnity
- 為什麼SOLID原則仍然是現代軟體架構的基礎?- StackOverflowSolid架構
- Happens-Before原則到底規定了什麼APP
- 伺服器的選購應該遵循什麼原則伺服器
- 架構設計要按照什麼原則進行呢?架構
- 機器學習中的正則化到底是什麼意思?機器學習
- 什麼是cookie,什麼是sessionCookieSession