9个坏的编程习惯,我们偷偷爱

打破规则可以带来一点兴奋 - 产生更好,更高效的代码

12 第2页
第2页2

编程习惯5:溜溜球码

程序员喜欢把它称为“溜溜球的代码。”首先,值存储为字符串。然后,他们正在解析为整数。然后他们转换回字符串。这是非常低效的。你几乎可以感觉到浪费负荷下的所有CPU的斗争。谁写的代码快聪明的程序员设计自己的架构,以尽量减少转换。他们的代码运行,因为其规划的速度更快。

但是,无论你相信与否,有时它是有道理的。有时候,你有一个重型的图书馆,做了bazillion其独有的黑盒子里面的东西智能化。有时老板写了7位数字的检查许可的所有天才的那个黑盒子里面。如果库希望在字符串中的数据,你给它的字符串库,即使你最近将它转换成整数。

当然,你可以重写所有的代码,以尽量减少转换的,但是这将需要时间。有时候,这是确定的代码运行额外的分钟,小时,天,甚至一周,因为重写代码将需要更多的时间。有时候跑起来的技术债务就像这比建立正确摆在首位便宜。

有时候库不是专有代码,但是代码你很久以前自己写。有时,它的速度更快的数据再一次将大于该库改写了一切。所以,你走,你写的溜溜球的代码。这是确定的 - 我们都在那里。

编程习惯6:编写您自己的数据结构

一个标准的规则是,程序员应该在他们大二完成数据结构课程后存储数据从来不写代码。别人已经写满,我们将永远需要的数据结构,以及它们的代码已经过测试,再测试了多年。它是捆绑在一起的语言,它可能是免费的。您的代码只能有错误。

但有时数据结构库有点慢。有时,他们迫使我们可能是标准的,但错误的我们的代码的结构。有时,图书馆推动我们进入我们使用结构之前重新配置我们的数据。有时库包括与像螺纹的锁固项目皮带和 - 吊带保护,我们的代码并不需要他们。

当这种情况发生,它的时间来写我们自己的数据结构。有时候这是很多,要快得多。有时,它使我们的代码更清洁,因为我们不包括用于重新格式化数据完全相同,因此所有的额外的代码。

编程习惯7:中间回路的突围

沿线某处,规则制定集团宣布,每一个循环应该有一个“不变”,这就是一个逻辑语句,在整个循环是真实的。当不变的是不再为true,循环结束。这是一个很好的方式去思考复杂的循环,但它会导致疯狂的禁令 - 就像从使用禁止美国返回打破在循环的中间。这是规则的一个子集,禁止声明。

这个理论是好的,但它通常会导致更复杂的代码。考虑,它扫描经过测试一个条目的阵列这个简单的例子:

而(I'则为a.length){
...
如果(试验(a [1])然后返回[I];
...
}

该循环不变爱好者宁愿我们添加另一个布尔变量,称之为未找到,并使用它像这样:

而((NOTFOUND)&&(I <则为a.length){
...
如果(试验(a [1]))然后NOTFOUND = FALSE;
...
}

如果此布尔是良好的命名,这是一个伟大的一块自记录代码。它可能更容易让大家理解。但它也增加了复杂性。它意味着分配另一个局部变量和堵塞的寄存器,编译器可能会或可能不会是聪明不足以解决。

有时或跳清洁。

编程习惯八:使用短变量名(但一世X合理)

爱伦坡常说,一个故事的每一个字应该建立一个单一的结论。由此,他的意思是每一个字必须说点什么给读者。编码规则坚持相同。每个变量名应说明它在做什么,以及为什么它的存在。这被认为是由Java程序员疯狂长度谁接受过使用混合大小写变量名告诉变量所做的精心细节的想法。有些程序员写有五,六个或更多的话粘在一起的变量名。

但有时它更容易使用高深莫测的单字母变量。有时,它只是简单使用一世要么Ĵ在循环迭代器。有时它更简单使用一个阵列和对于列表,即使它是从1号区分。

是的,这篇文章的早期部分鼓励自记录代码在很长的意见。在这种情况下,一个字母的变量名是自记录文件。信一世是通用迭代器。聪明的程序员会马上知道。

编程习惯第9号:重新定义运算符和函数

一些最有趣的语言让你做真正的狡猾之类redefine元素,看上去就像他们应该是恒定的值。Python的,例如,您可以键入TRUE = FALSE至少在2.7版本之前。这并不创造某种逻辑崩溃和宇宙的终结的;它只是交换的意义真正。您也可以玩危险的游戏,像这样使用C预处理器和一些其他语言。还有一些语言让你重新定义,如加号的运营商。

这是一个延伸,但会有一个代码块大时,它的速度更快,重新定义一个或一个以上这些所谓的常量内的点。有时老板要的代码做完全不同的事情。当然,你可以通过代码工作,并改变每出现,或者你也可以重新定义现实。它可以让你看起来像一个天才。不是重写一个巨大的图书馆,你只需翻转了一下,它的对面。

也许,这是很好的在这里画线。你不应该在家里尝试,无论多么聪明和乐趣即可。这太危险了 - 真的...诚实。

相关文章

这个故事,“我们偷偷爱着9个坏的编程习惯”最初发表InfoWorld的

加入对网络世界的社足球竞猜app软件区Facebook的LinkedIn对那些顶级心态的话题发表评论。
有关:

版权所有©2015年足球竞彩网下载

12 第2页
第2页2
IT薪资调查:结果是