我参加了一些课程并阅读了有关 YAGNI 的目的。但是,这个原则作为一个整体从来没有让我满意。它引入了一个逻辑悖论。
作为一个假设,您正在设计一个打算向前扩展的框架。YAGNI(可能还有 TDD)会鼓励你专注于现在。让它适用于您可预见的硬件。毕竟,对未来的要求是模糊的,而且是在未来。
但是,这从本质上限制了您的框架的可行性。在这个假设中,你有先见之明,知道未来会怎样。做一些原型设计和提前工作可能值得你花时间,因为知道它可以很好地帮助你。毕竟,框架的本质是促进跨环境的某些功能——那么你如何设计一个框架并严格遵守 YAGNI 原则?
我不确定我是否要求提供关于“如何使用 YAGNI”的具体内容——我知道它可能比这更具哲学意义。我可能只是在询问业内经验丰富的开发人员,YAGNI、对立原则和最佳实践之间的界限在哪里。YAGNI 是否被强制执行?它甚至被视为?或者这只是我们学校教给我们的东西,因为它在我们的书中?
谢谢。