Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

写代码要学会主动选择偷懒与不偷懒

  “偷懒”它不是个贬义词,人类就是在不断偷懒中进步的。发明蒸汽机,发明电动机,全是为了偷懒,所以不要觉得埋头苦干是一件高尚的事情!写代码也要学会偷懒,有懒不偷墨守成规的就不适合学写程序。
  现在偷懒一下,来看看代码里偷懒的例子: //代码1
var i,l=100,q=true,a=[];
if(q)
  for(i=0;i<l;i++)a.push(i*2);
else
  for(i=0;i<l;i++)a.push(i);

//代码2
var i,l=100,q=true,a=[];
for(i=0;i<l;i++)a.push(i*(q?2:1));
  这两个代码都是做同样的事情,你觉得哪个代码好呢?如果要比较效率,显然是代码1的效率高,因为代码2比代码1多执行了100次三元运算符的运算。可是代码1仅仅是效率高了一点点而已,有时候没必要在乎这点效率,除非你是个在乎效率偏执狂。写程序的时候或许感觉不到什么区别,但是当你需要维护程序的时候就会发现第二个代码很方便了。假如我要把这段代码修改成i从10开始循环,代码1需要修改两个地方,而代码2只需要该一个地方而已。而且更重要的是代码2简短,在上面这段代码里也许看不出代码简短的优势,但是如果for循环里面的语句有20行你就能看出区别了。写代码的时候如果一段代码超出了屏幕的范围,看到一个变量找它的定义还需要拖滚动条这样当然不好。比较这两段代码,我个人认为代码2比较好。但是条件稍微改变就不同了,比如把l的值改成1E8。这时候我就会选择代码1。因为循环次数变多了循环里消耗的一点点资源就会慢慢累加起来,当量达到一定程度时候就会对程序有影响。所以,我建议在大循环或者递归中尽量把代码放到循环外,别什么都往循环里丢。自己写的程序,什么地方需要高效,什么地方无所谓效率,这些事情自己要清楚。高效的地方就用高效代码,其它地方用简洁代码,这样偷懒才是一个境界。
  关于效率的文章,以后还要写一堆,这篇文章就先到这儿吧。
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^