程序员们注意了,这3句代码就能造成百万损失,大意不得

做程序是一门严谨的活儿,一不小心,一个指令错了就可能大相径庭,造成了巨大的错误,今天就来盘点一下一些比较经典的错误,以防其他程序员以后再犯类似的错误,这都是一些血淋淋的教训,如果今天能够看到,那么就给自己庆幸一下,如果你也知道这些,觉得自己不可能会犯这样的错误,那么就当温故一下吧。

案例1

一个PHP程序员,接到这样一个任务,要去修改一个shell脚本,领导给他的需求是这个脚本所做的事情是定期清理日志文件和一些测试文件,现在改为只清理日志文件,不清理测试文件了,在接到这个任务后,这个php程序员爽快的答应了。

打开脚本后看到里面有这样一行

rmtestlog

程序员看了暗自窃喜,不就是注释掉test嘛,这还不容易,于是乎这个php程序员用php的多行注释注释掉了test,改后如下:

rm/*test*/log

然后保存了脚本,就大功告成,后来这个程序员的境遇如何我不知道,但是我想肯定不会很好了吧!

案例2

一个电商网站,要求对订单状态为0的订单进行占库存的动作,研发这块的程序员是这么写代码的

if($data[status]==0){

//占库存的代码

}

而他忽视了一个环节,数据库中的status状态除了有具体数值外,还有好多部分是空的,而他却没想到php中这些空值也会按成0来算,并且他用的是==,如果用了===会好一点,比较严谨的做法是。

if(isset($data[status])$data[status]==0){

//占库存的代码

}

或者是

if(isset($data[status])$data[status]===0){

//占库存的代码

}

看是一个小小的错误,就造成了巨大的损失,一下子搞的网站80%商品库存不足,其实库存是相当充裕的。程序是严谨的,我们在写程序之前要对临界情况多做测试,千万别闹出这样笑话。

案例3

这是一个由于代码不严谨造成整表清空的案例,仔细看下面这段代码

$sql=‘deletefrromcust’;

if(isset($num)){//这是一个比较坑人的点,并不是所有情况都能进入if里面

$sql.=wherenum=.$num;

}

query($sql);

当页面那边什么参数都没传的情况下,再加上程序员没做任何校验,那么这段代码就是相当的危险了,造成了对整表删除的风险。

图片来之互联网

大家仔细看看上面的案例,虽然改动很小,差别很小,不仔细看还一下子看不出毛病来,但是这些代码如果放在具体生产环境,那可都是至少百万级别,千万级别的损失啊,自己多少年的薪水才能赚回来呀,因此在此告诫程序员朋友们,做事一定要严谨啊,千万不要一失足顿成千古恨啊!在任何时候,任何情况一定要把细心认真放在首位,因为随时都有可能发生让你后悔一辈子的事情。为了不让这种情况发生,时刻铭记,谨慎,再谨慎!

大家好,我是“上世是朵花”。如果你有什么好的看法或者观点可以在评论区展现你的才华,互动交流,如果想进一步了解我,那就


转载请注明:http://www.shhjfk.com/pxxx/pxxx/14263.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了