【发布时间】:2009-10-10 13:59:40
【问题描述】:
在设计软件的组件或架构时考虑性能是否可取?我的意思是,设计/架构应该准备好在性能密集型环境中使用吗?
在设计组件时,我们是否应该遵循良好的 OO 原则并确保组件是“可扩展的”。这样,当我们遇到性能问题时,我们会在这里和那里稍微调整设计。尽管这样,我们经常会遇到性能问题,稍微调整软件可能无济于事。
或者,如果我们想出一个设计,虽然很复杂,但性能问题却轻而易举。我们仍然需要调整软件,但调整通常非常简单,因为设计是面向性能的。
注意:在上述两种情况下,我都没有尝试在遇到性能问题之前调整软件的性能。换个说法,软件的设计是否应该以性能为导向?
请不要回答我说这完全取决于软件预期运行的环境。原因是任何工业级软件的客户似乎总是想要越来越多。您可能不会计划您的软件在性能密集型环境中持续运行,但如果必须这样做呢?当我们感觉到这一点时,我们是否应该重新设计软件?
这个问题困扰了我一周,我还没有答案。您对此有何看法?
【问题讨论】:
-
对不起,但“这取决于”是唯一正确的答案。通常,您必须在可维护性和性能之间做出平衡。
-
重新标记 - 从“java”更改为“language-agnostic”,“oops”更改为“oop”;添加了“最佳实践”。希望这会给更广泛的观众。如果 OP 选择将它们改回来,我不会重新编辑它们。
标签: language-agnostic oop design-principles