你不需要它(YAGNI)

如果你可以对某个功能说 YAGNI(你不需要它),最好不要实现它。通过专注于简单性,可以节省大量的开发时间。无论如何实现这些功能可能会导致问题:

问题

过度设计

如果产品比它必须更复杂,那么它就是过度设计的。通常这些尚未使用的功能永远不会以它们编写的预期方式使用,并且如果它们被使用则必须重构。过早的优化,尤其是性能优化,往往会导致设计决策在未来被证明是错误的。

代码膨胀

Code Bloat 意味着不必要的复杂代码。例如,这可能通过抽象,冗余或不正确的设计模式应用而发生。代码库变得难以理解,令人困惑且维护成本高昂。

特征蠕变

功能蠕变是指添加超出产品核心功能的新功能,并导致产品的不必要的高复杂性。

开发时间长

可用于开发必要功能的时间用于开发不必要的功能。产品交付时间更长。

解决方案

吻 - 保持简单,愚蠢

根据 KISS 的说法,如果设计简单,大多数系统都能发挥最佳性能。简化应该是降低复杂性的主要设计目标。例如,可以通过遵循单一责任原则来实现。

YAGNI - 你不需要它

少即是多。想想每个功能,它真的需要吗?如果你能想到它是 YAGNI 的任何方式,那就把它留下吧。在需要时开发它会更好。

持续重构

该产品正在稳步改进。通过重构,我们可以确保产品按照最佳实践进行,并且不会退化为补丁工作。