你不需要它(YAGNI)
如果你可以對某個功能說 YAGNI
(你不需要它),最好不要實現它。通過專注於簡單性,可以節省大量的開發時間。無論如何實現這些功能可能會導致問題:
問題
過度設計
如果產品比它必須更復雜,那麼它就是過度設計的。通常這些尚未使用的功能永遠不會以它們編寫的預期方式使用,並且如果它們被使用則必須重構。過早的優化,尤其是效能優化,往往會導致設計決策在未來被證明是錯誤的。
程式碼膨脹
Code Bloat 意味著不必要的複雜程式碼。例如,這可能通過抽象,冗餘或不正確的設計模式應用而發生。程式碼庫變得難以理解,令人困惑且維護成本高昂。
特徵蠕變
功能蠕變是指新增超出產品核心功能的新功能,並導致產品的不必要的高複雜性。
開發時間長
可用於開發必要功能的時間用於開發不必要的功能。產品交付時間更長。
解決方案
吻 - 保持簡單,愚蠢
根據 KISS 的說法,如果設計簡單,大多數系統都能發揮最佳效能。簡化應該是降低複雜性的主要設計目標。例如,可以通過遵循單一責任原則來實現。
YAGNI - 你不需要它
少即是多。想想每個功能,它真的需要嗎?如果你能想到它是 YAGNI 的任何方式,那就把它留下吧。在需要時開發它會更好。
持續重構
該產品正在穩步改進。通過重構,我們可以確保產品按照最佳實踐進行,並且不會退化為補丁工作。