首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不过度设计当前问题解决方案的原因

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

Stack Overflow用户
提问于 2009-06-29 14:20:28
回答 8查看 1K关注 0票数 5

大家好,

在思考这个关于overdesigning for possible future changes的问题时,它让我开始思考。

你能为那些坚持放弃设计的人提供什么反对的理由,因为“他们可能想在未来的某个阶段在其他地方使用它”?

类似地,当人们接受了需求,然后带着一个臃肿的设计回来时,你会怎么做?

当你知道一个设计对现在或不久的将来存在的需求或可能的用途是有意义的时候,我就能理解扩展设计。我并不是在提倡随意地接受一个需求列表,然后明确地实现它,而不是对您认为可能缺少的东西提供任何反馈。

我说的是,当人们坚持添加或拥有无关的功能,以便“我们可能在未来的某个阶段在其他地方使用它时,该怎么办?”

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-06-29 14:23:20

在维基百科上有很多好的理由。

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

  • 从添加、测试或改进必要的新功能所花费的时间必须进行调试、记录和支持。
  • 任何新功能都会对将来可以执行的操作施加约束,因此现在不必要的功能可能会阻止以后实现必要的功能。
  • 在实际需要该功能之前,很难完全定义它应该做什么并对其进行测试。如果新功能没有正确定义和测试,它可能不能正常工作,即使最终需要它。
  • 它导致代码膨胀;软件变得更大,更多的complicated.
  • Unless有规范和某种修订控制,该功能可能不为使用它的程序员所知。
  • 添加新功能可能会建议其他新功能。如果这些新功能也被实现,这可能会导致向爬行功能主义的滚雪球效应。

另请参阅:http://en.wikipedia.org/wiki/KISS_principle

票数 5
EN

Stack Overflow用户

发布于 2009-06-29 14:23:54

尤其是在嵌入式设备上,大小就是金钱(例如,更大的Flash部件,其成本更高,在制造时具有更长的编程时间;或者更多的外围组件)。

即使在Windows应用程序上,应用程序越大,功能越多,开发成本就越高;等到您知道需要什么和不需要什么时,您就不会浪费太多的钱来开发那些原来根本不需要的东西。

此外,任何附加功能都会带来潜在的bug。

在开发之前正确考虑需求是很好的,但过度设计通常只是自找麻烦。

票数 3
EN

Stack Overflow用户

发布于 2009-06-29 14:24:36

他们:“我们可能会在未来的某个阶段在其他地方使用它。”

我:“是的,我们可能会。我们可能不会。现在,我们不知道我们可能想要用什么方式。如果我们在未来的某个阶段确实想要它--那时我们就会知道我们想要它的方式。这就是我们可以自信地写出来的时候。另一方面,如果我们今天写了它,但从来不需要它,我们就浪费了资源去开发我们不需要的东西。我们增加了我们的代码膨胀,所以很难找到正在使用的代码库的片段,因为我们有所有这些(目前)不必要的代码排挤了有用的东西。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1058588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档