开发人员常常面临着在解决问题的两种可能方法之间进行选择的情况——一种是惯用且可读的,另一种是不太直观但可能表现更好的方法。例如,在基于 C 的语言中,有两种将数字乘以 2 的方法:
int SimpleMultiplyBy2(int x)
{
return x * 2;
}
and
int FastMultiplyBy2(int x)
{
return x << 1;
}
第一个版本对于技术和非技术读者来说都更容易上手,但第二个版本可能表现更好,因为位移位是比乘法更简单的操作。 (现在,我们假设编译器的优化器不会检测到这一点并对其进行优化,尽管这也是一个考虑因素)。
作为开发者,初次尝试哪个会更好?
你错过了一个。
首先编码是为了正确性,然后是为了清晰性(当然,两者通常是相连的!)。最后,只有当您有真正需要的实际经验证据时,您才可以考虑优化。过早的优化确实是邪恶的。优化几乎总是会花费你的时间、清晰度和可维护性。你最好确保你买的东西是值得的。
请注意,好的算法几乎总是胜过局部调整。您没有理由不能拥有正确、清晰且快速的代码。不过,如果你一开始就专注于“快”,那么你会非常幸运地到达那里。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)