我们都很菜

昨天在修改以前同事写的JavaScript代码时,看到里面有这样的写法:
location.load(’/foo…’)
以此跳转到新的页面。

当时心想,哟,看别人代码就是有收获,又学到新东西了。于是修改的过程中,我也尝试用这种办法,一方面我可以copy原来的代码,另一方面,这种办法比起window.location.href = ‘/foo…’的写法要好看一些嘛……然而代码跑起来的时候却发现,location对象根本没有这个方法。原来,这位同事是看到location有reload(查一下标准)这个方法来重新载入当前页,就认为载入一个新页面应该有个方法为load,以一个字符串为参数。

记下这件事,并没有丝毫冷嘲热讽的意思。从程序语言设计的角度来说,这种思想是很合理的:为location对象的href属性赋值,应该只引起该对象属性的变化,而不是引发一个动作;而要想使浏览器加载新的页面,应该由一个方法来完成。然而,不论怎么合理,都不能想当然地这样写代码,这已经超出了写代码的范畴了,这是在设计语言。我也不应该看到这样的代码就想当然地认为有这样的方法,至少,google一下就知道它不存在了,万幸的是这个错误被及时地发现了。

还有一件事,在看到有人用system.out.println方法debug代码时,我经常会指出,除非万不得已,尽可能用IDE的Watch之类的功能,打印的函数很有可能被遗忘在代码中而不被删除。我是个比较自以为是的人,也很理解对方不以为然地说,没关系,完了都会删除的。我很不放心地走开,然而事后经常证明我的担心是对的,检查代码时,还可以看见许多的println debugger完好地留在代码中。

总之,虚心是很重要的一个品德,如果实在以下问为耻,可以Google啊,baidu啊。看到这些事情,在为别人惋惜的同时,我也把它们当作镜子,反观自己身上是不是有同样的缺点。对别人宽容,对自己严格,又是更难做到的一件事情。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.