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