YAGNI原則是什麼? -oliverkumper

banq發表於2020-11-17

YAGNI 是You Ain't Gonna Need It(你不會需要它)的簡寫,是極限程式設計的關鍵原則。
YAGNI意思非常簡單:僅在您真正需要它們時才去做,而不是在您認為或預見將來可能需要它們時就提前做了!
您可以將YAGNI視為即時製造的擁護者。在這種情況下,製造業正在編寫程式碼並交付功能。只有當有人真的需求功能存在時,您才可以開始工作並建立它。否則,您將保持自己的懶惰!
它為什麼如此重要?沒有編寫的每一行程式碼都是時間,因此可以節省金錢。但是,甚至更多!它是:
  • -更少的程式碼維護
  • -更少的程式碼測試
  • -事情發生變化時更少的程式碼可重構
  • -更多時間用於更重要的功能
  • -更多時間用於文件編制

而且還包括:
  • -節省了編譯/移植的時間
  • -節省了測試執行的時間
  • -生成時/執行時節省了資源
  • -不必以某種方式保留的知識

它可以防止什麼?如今,大多數軟體開發都是根據客戶的需求進行的。無論您是在產品公司,在提供開發服務的公司還是在其他地方工作。
總是會在某處某人想要具有某個功能。
是您的客戶要求具有某個需求的功能,還是產品經理響應客戶的反饋的功能。無論實際驅動者是誰,無論是早晚,這都是實際需求的體現。
您正確預見未來功能請求的機會非常低。因此,您很有可能實現某些功能,而不是您的實際利益相關者想要的功能。這就像玩彩票!
過早地執行某些操作很可能會導致一切都被丟棄。這是一個沒人真正喜歡的場景!然後,有時會發生另一種情況:沒有人真正需要該功能!
 
評論:
YAGNI就是為什麼要在開始編寫任何程式碼之前先確定需求的原因。使用者的需求很高,但是還有一些技術需求必須弄清楚,這樣才不會最終實現不必要的東西。
 
YAGNI是許多原則的核心。例如,開放-封閉原則。您可以設計所有可能的抽象,以便在發生更改時,可以透過新增程式碼而不是對其進行修改來應用它們。但這是不可能的。您無法預見所有潛在的變化。
 
banq評:防止使用YAGNI導致技術債務,技術債務是因為你沒有真正理解業務功能導致的,而YAGNI可能會影響你沒有去深入理解業務功能,當然理解業務功能不是預測業務功能。YAGNI雖然可以防止過度設計,也會導致設計不足。
 

技術債務是對業務功能缺乏真正的理解



 

相關文章