什么是“矫枉过正”?

时间:2014-02-10 14:02:08

标签: terminology

程序员经常wonder if the use of a certain library or programming style is overkill。他们也经常claim that this is the case(他们是often believed)。

“矫枉过正”在编程环境中意味着什么?

2 个答案:

答案 0 :(得分:5)

"矫枉过正"通常用于表示部署过于灵活和/或过度设计的解决方案,以解决表面上简单且高度本地化的问题。规范示例是FizzBuzz Enterprise Edition

答案 1 :(得分:2)

术语“矫枉过正”(如果曾经直接使用它)指的是杀死某事物或某人的行为,其资源超过必要的资源。像射鹿一样50次,以确保它死亡。

在编程中,它适用于相同的原则:利用比必要更多的资源,或找到一个简单问题的过于复杂的解决方案。

一些简单的例子是

for i=1 to 100
   x[i]=2^z[i];
   y=x;    
end

在每个迭代步骤中复制整个数组x可以实现所需的结果,但您也可以按元素y[i]=x[i]复制它,从而节省了大约900个操作,因此是一种过度杀伤。

使用OpenCV库来阈值图像是可能的,但使用的资源比严格必要的要多得多,并且是一个过度杀伤的例子。