不过度设计当前问题的解决方案的原因

Rob*_*lls 4 yagni

天儿真好,

虽然在这里考虑过这个问题,但是对于可能的未来变化进行过度设计,这让我想到了.

您可以提供哪些理由反对那些坚持要求设计的人,因为"他们可能希望在未来的某个阶段将其用于其他地方"?

同样地,当人们接受这些要求然后回来时,你会做出什么样的臃肿设计以及你没有要求的额外"花里胡哨"?

当您知道现在或在不久的将来存在的需求或可能的用途时,我可以理解扩展设计.而且我并不主张只是轻率地接受一系列要求并明确地实施,而不提供任何关于你认为可能缺失的反馈.

我在谈论当人们坚持添加或拥有无关功能时该做什么,以便"我们可能会在未来的某个阶段将其用于其他地方?"

Fog*_*ird 5

维基百科有很多好的理由.

http://en.wikipedia.org/wiki/You_Ain%27t_Gonna_Need_It

  • 花费的时间来自添加,测试或改进必要的功能.
  • 必须调试,记录和支持新功能.
  • 任何新功能都会对将来可以执行的操作施加限制,因此现在不必要的功能可能会阻止以后实现必要的功能.
  • 在实际需要该功能之前,很难完全定义它应该做什么并进行测试.如果未正确定义和测试新功能,即使最终需要,也可能无法正常工作.
  • 它导致代码膨胀; 软件变得更大,更复杂.
  • 除非有规范和某种版本控制,否则可能无法使用该功能的程序员可以使用该功能.
  • 添加新功能可能会提示其他新功能.如果这些新功能也得到实施,这可能会导致雪球效应逐渐蔓延.

另见:http://en.wikipedia.org/wiki/KISS_principle