【发布时间】:2009-02-24 17:28:17
【问题描述】:
我一直在研究很多这样的问题,询问执行此操作的“最佳”方式或执行此操作的“最佳”方式。
- 一个人的最佳方式是否就是每个人的最佳方式?
真的有一种“最佳”方式来执行特定算法或解决问题吗?
与仅仅以任何方式解决问题相比,寻找最佳方法有什么危险?
【问题讨论】:
-
很高兴在一个标题中同时看到“问题”和“最佳”这两个词...
标签: theory
我一直在研究很多这样的问题,询问执行此操作的“最佳”方式或执行此操作的“最佳”方式。
真的有一种“最佳”方式来执行特定算法或解决问题吗?
与仅仅以任何方式解决问题相比,寻找最佳方法有什么危险?
【问题讨论】:
标签: theory
Jeff - 这是我和我的同事反复讨论的内容。他们一直在寻找技术实施和最佳实践方面的最佳方法,而作为业务分析师,我更关注交付和解决手头的问题。
这当然是一个价值主张的问题,我认为它归结为可维护性和性能。如果所做的更改或代码不可维护或易于更改,那么它就会成为一个问题,应该重新评估最佳实践。如果有问题的代码运行缓慢且性能令人担忧,那么可能应该对其进行修改。
虽然有 10 多种方法可以给猫剥皮或编写算法,但不一定有最好的,但几乎总是有更好和更差的。查看代码气味的主题,可能是一个不错的起点。
【讨论】:
没有。
这是老哲学家的问题。完美不可能存在,就好像它存在一样,它不会是完美的。由于我们世界的不完美,现实中的任何事物都永远不会完美,风化(无论是自然的还是人为的)都会立即发生使其不完美。
最好的不存在。 “更好”确实如此,但“更好”取决于上下文。例如。 “xyz 更适合这种情况”。
权衡是您要寻找的词。每个决策都有其权衡取舍,“更好”的取舍取决于您的具体情况。
【讨论】:
在其他条件相同的情况下,最好的解决方案是解决问题的团队充分理解并能够正确实施的解决方案。
【讨论】:
“最佳”可以表示计算机编程中的许多东西,例如
甚至这些事情也可能意味着很多事情,例如“最快”可能意味着“最低延迟”或“最高吞吐量”,甚至可能意味着“最低摊销延迟”之类的东西,这可能会考虑该方法的最佳和最坏情况以及两者之间的分布。
因此,如果该方法的每个方面对于“最佳”及其组成部分的所有可能定义都是最佳的,那么是的,存在最佳方法。但除了最简单的情况外,这种情况很少见。
【讨论】:
应对解决方案的所有备选方案进行评估,并且选择的解决方案应该是能够以最低价格满足所有要求的最佳解决方案。 一个人最好的不是另一个人最好的。
【讨论】:
对于任何合理的复杂问题,您都会得到大量的解决方案,根据具体情况,这些解决方案可能是最好的,但是
在许多情况下,最好的默认解决方案应该被视为最佳解决方案,直到您了解为什么不是这种情况的原因。
示例:有数百种方法可以对集合进行排序。但是如果您对问题一无所知,那么 api 提供的方法是一个很好的猜测。
【讨论】:
我认为它们都是“在这种情况下最好”的意思,当然没有普遍的最好。如果有,它只是在等待下一个最好的出现并取而代之!
【讨论】: