(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
项目上线后,遇见一个很诡异的bug. 不断有用户反馈有问题,但开发和测试折腾了好久,都没找到重现条件。直到有个热心的用户跑过来,在用户的电脑上才发现问题所在:Flash版本过低,在js的某处判断了flash的版本,之后进入的代码分支中有这样一句:
YAHOO.util.Event.on(vipPopup, 'error', function () {...});
vipPopup在此处未定义,因此导致了出错。一旦找到出错点,解决起来就快了,不多说。
这问题让我想起一个一直想总结但一直没时间去总结的话题:如何让编写鲁棒的JavaScript代码?
鲁棒(Robust音译)的定义是:放在正确的环境能得到预期的结果,放在复杂的环境下也不会出错。很多JavaScript开发者还停留在裸写代码的时代,同时业界缺乏便捷低廉的前端测试方案,这导致项目上线后,某些bug在特定环境下才能触发,结果后续的bug定位就非常麻烦了。如果我们能在开发阶段,就让JavaScript代码鲁棒点,这样,即便测试覆盖不到某些分支,也不会因为异常而导致整个js代码坏掉。下面是我的一些经验:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)一、养成良好的编码习惯。良好的编码习惯有两个