拷贝代码的坑

很多人都会鄙视拷贝网上代码的行为,然后这个还是得具体来看。比如恰巧工期很紧,这时候你需要实现一个算法,自己实现并调试需要一两天的时间才能保证无误,可是这种算法网上已经实现的例子有一大堆,在这种情况下,拿来主义无可厚非,只是需要测试确认可用就好了。拷贝现成的例子后你可能半个小时就把事情搞定了,先不说有没有蛮坑,其实你自己去实现,往往比拷贝别人代码的坑还大个。对于老板来说,大部分也不会在乎你怎么实现某个功能,只在乎你实现了没有。因此,这种情况下主张拿来主义。

而如果你有足够的时候,又想体验重新发明轮子的乐趣,加深自己对某些东西的理解,或者你性格比较屌,觉得我就是不用别人的东西怎么了,那你自己去实现吧,虽然实际上底下的很多东西你还是用别人的是不是,哈哈。

看起来好像我是赞成程序员拷贝代码的,其实我真不反对拷贝别人代码,只是我觉得要做好测试,必要的时候对这些代码进行修改和测试后再使用,并结合具体的使用场景做改善。为啥我这么说捏,因为老夫我有切肤之痛啊。话说前段我们使用了一些开源软件,这个开源软件可以使用各种插件,我们拷贝了官方一个例子插件的框架,然后在里面填点内容,就给这个开源软件配置这个插件了。填的内容里边,有部分是从网上拷贝的,那只是别人的demo代码,而我们当时只是为了验证使用插件的方法是否可行,因此没有对这部分代码进行仔细检查,编译通过了就万事大吉。后来呢,后来我们哪里还记得有一部分代码是拷贝别人demo用于测试而已,于是这部分代码就被用在了生产环境。这部分代码频繁的new对象,本来只需要new一次的对象,只要执行到这里一万次,就会new一万个对象,JVM垃圾回收也没那么频繁,于是就出现应用占用内存持续增高的现象,最终抛出Out Of Memory错误。

从这个坑里出来后,我顺便延伸一下吧,就是一般程序出现问题时,我建议先找找自己代码的问题,而不是首先怀疑操作系统或者所使用的成熟开源软件有问题,99.9…%的情况下,是我们自己的代码有问题,这种解决问题的思路顺序可能让你事半功倍。

发表评论

电子邮件地址不会被公开。