很多时候,发现问题比解决问题更重要。
我在学习Math.floor函数的时候,写了一段代码:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Math </title> <script type="text/javascript"> document.write(Math.floor(3.3)+ "<br />");//与下面一行代码结构重复 document.write(Math.floor(-0.1)+ "<br />");//与上面一行代码结构重复 document.write(Math.floor(-9.9)+ "<br />");//与上面一行代码结构重复 document.write(Math.floor(8.9)+ "<br />");//与上面一行代码结构重复 </script> </head> <body> </body> </html>
能看出上面有四行代码除了参数不同之外,别的都是重复的。这样的写法,一点都不高效简洁。
我在写的时候也感觉到了这种机械性的重复,但没多想,只是靠着惯性一味的写下去。
然后我参考了一下别人写的代码:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Math </title> <script type="text/javascript"> function math(x){ document.write(Math.floor(x)+"<br/>"); }//把代码的功能抽象为一个函数 math(3.3);//调用函数 math(-0.1);//调用函数 math(-9.9);//调用函数 math(8.9);//调用函数 </script> </head> <body> </body> </html>
哎呦,好简洁,好漂亮!
实现同样的功能,我写的代码比别人冗余很多,效率也低了很多。
为什么会造成这种差别呢?
主要是我水平太低,其次就是我没有发现问题。
如果我在写这段代码的时候,能够发现自己这种方法是重复性劳动、是低效的、反人类进程的,我应该就会想另外更好的方法。
生活中很多地方也是如此,不要被自己的惯性拖着走。
当你发现了有不对劲的地方,就停来,思考一下是不是有问题。
原文:http://www.cnblogs.com/guohaojintian/p/6243357.html