前两天无意间听到过一次A指着B说:“你这代码写的好烂”,听罢,我笑了笑,想起了我之前帮别人Debug(检查代码)的一些行径。
当我刚开始检查的时候,我看到了这段程序,我认为有些部分毋庸置疑的是写的很烂的,我删掉了那段代码,用自己认为更好的方面重新写了一遍。可在接下来的检查里,我回头再看,越发的觉得我所删掉的那段代码其实是用了一个很好的模式,而我重写的的确是丑陋无比。
毫无疑问,我被上了一课。
之后的日子里,我经常会遇见我自以为是丑陋的代码,并妄图修改它们,可十中有九,当我即将完成的时候,才意识到他们的编程思路——“哦,怪不得他要这么做了”。然后不得以,只好把他们的代码恢复,或用类似的“丑陋”的代码去完成它。
当然,这其中很大的原因是我知识的浅薄,就比如前天我在某道动态规划的问题里看见有个人采用了类似于if(maxn<x) maxn=x;来筛选最大值的做法,我想都没想就用了形式上更简短的max函数:max(maxn,x);结果就不出意外的就超时了,而后我才意识到我的做法“is too naive”,最终不得已我换成了再填一步宏定义MAX的“丑陋”做法。
不过,即使对于已经有了较深积淀的成熟程序员来说,我也坚信我这一想法是普适的。你无法轻易判断一个程序的好坏,尤其是在没有注释的情况下,你不会知道程序员当时的脑中是怎么想的,多数的情况是,他们这么做是有一定理由的,除非静下心来慢慢看懂全部,否则别无他法。
所以,我唯一能批评的只有自己的代码,因为,我不能让它变得更好。想来……看人做事也无非是这个道理吧,评论一个人做的事怎样,如果不听听当时的情况,就不会了解别人的初衷,也就更无法妄下评论了……
妄加判断是程序员的大忌
最新推荐文章于 2021-12-06 19:37:27 发布