我不知道将术语“过度设计”应用于软件开发是一个很好的定义。该表达式似乎经常在软件设计讨论中经常与“过分的面向未来”结合使用,并且可以确定更精确的定义。
[与大多数答案相反,我不认为“目前不需要的功能”过度设计;或问题最少的形式。
[就像你说过的那样,最糟糕的过度工程通常是以面向未来和可扩展性的名义犯下的,而恰恰相反:]
事实是,最容易适应新的和不断变化的需求(因此是最有前途和可扩展性的设计是尽可能简单的设计。
实际上
他们想获得一些东西来立即出售,重新利用现有工具。我忍不住坐下来想一想,如果没有我们所谈论的某些灵活性,那么注册次数会减少,保留率会降低。主要是具有猴子可以使用的高度可视化的UI。
与普遍的看法相反,过度工程实际上是当工程师感到疲倦并认为他们理解用户时出现的现象。
在我们考虑过过度设计的情况下,通常会描述设计得如此通用的软件,以至于忽视了最初设计要执行的主要任务,因此不仅变得困难使用,但从根本上来说并不明智。
对我来说,过度工程包括您不需要的任何东西,并且您不需要[[知道
请注意,我要区分镀金和过度设计。在我看来,镀金可以创造出人们所不需要且永远不会使用的功能。过度设计更多地是关于通过在代码周围编写检查代码或对简单任务使用过多设计来为应用程序构建多少“安全性”。