大家好,
在思考这个关于overdesigning for possible future changes的问题时,它让我开始思考。
你能为那些坚持放弃设计的人提供什么反对的理由,因为“他们可能想在未来的某个阶段在其他地方使用它”?
类似地,当人们接受了需求,然后带着一个臃肿的设计回来时,你会怎么做?
当你知道一个设计对现在或不久的将来存在的需求或可能的用途是有意义的时候,我就能理解扩展设计。我并不是在提倡随意地接受一个需求列表,然后明确地实现它,而不是对您认为可能缺少的东西提供任何反馈。
我说的是,当人们坚持添加或拥有无关的功能,以便“我们可能在未来的某个阶段在其他地方使用它时,该怎么办?”
发布于 2009-06-29 14:23:20
在维基百科上有很多好的理由。
http://en.wikipedia.org/wiki/You_Ain%27t_Gonna_Need_It
另请参阅:http://en.wikipedia.org/wiki/KISS_principle
发布于 2009-06-29 14:23:54
尤其是在嵌入式设备上,大小就是金钱(例如,更大的Flash部件,其成本更高,在制造时具有更长的编程时间;或者更多的外围组件)。
即使在Windows应用程序上,应用程序越大,功能越多,开发成本就越高;等到您知道需要什么和不需要什么时,您就不会浪费太多的钱来开发那些原来根本不需要的东西。
此外,任何附加功能都会带来潜在的bug。
在开发之前正确考虑需求是很好的,但过度设计通常只是自找麻烦。
发布于 2009-06-29 14:24:36
他们:“我们可能会在未来的某个阶段在其他地方使用它。”
我:“是的,我们可能会。我们可能不会。现在,我们不知道我们可能想要用什么方式。如果我们在未来的某个阶段确实想要它--那时我们就会知道我们想要它的方式。这就是我们可以自信地写出来的时候。另一方面,如果我们今天写了它,但从来不需要它,我们就浪费了资源去开发我们不需要的东西。我们增加了我们的代码膨胀,所以很难找到正在使用的代码库的片段,因为我们有所有这些(目前)不必要的代码排挤了有用的东西。
https://stackoverflow.com/questions/1058588
复制相似问题