“懂啊,基本的逻辑前提吗。再说了,咱是土木专业的,算是半个老本行了。”
“那好,接下来给你解释你就明白了。首先,按照第二条要求,要保障管道大于千分之一的最低坡度,也就是布置一千米最少高程要下降一米;按照第三条要求,要保证覆土,也就是土层必须大于六十公分。所以这两个条件结合起来,那个软件的代码就规定了,当道路坡度大于千分之一的时候,管道坡度等于道路坡度;当道路坡度小于千分之一,甚至是反坡,反坡就是坡度向上走的路,这种时候,管道坡度就取千分之一。这个规定你感觉有毛病吗?”
戚斌暄想了想,说道:“应该没啥毛病吧?”
孙沐正色地说道:“不,毛病大了去了。编制程序是严谨的,必须考虑多种情况,还需要结合运行的反馈修改修正。排水管线的布置,需要考虑的实际情况有很多,怎么能够只根据这两条就去设置呢?比方说我就找到了一个不合理的情况。你看,假设排水管线从起点到终点的布置,总长两千米平均分为两段,一段一千米。起点到一千米处,设置反坡,道路升了一米。这时候就要求管线按照降一米的最小坡度计算,也就是说,起点管线覆土六十公分,到一千米处覆土一点六米。没错吧?”
戚斌暄脑中回想了下大概图形,就是近似大于号的两条线,上边的是道路,下边的是排水管,然后对照要求,说道:“没错。”
“好,那从一千米到两千米处,道路坡度变成了下降两米,大于最小坡度,所以按照代码规定,管道坡度等于道路坡度,也就是一千米下降两米,这个没问题吧?”
戚斌暄脑中浮现出了两个平行线,方向向右下,然后回到:“应该也没问题吧?”
孙木头这时候笑着说道:“不,有问题。虽然按照代码的规则是对的,也能满足排水管布置的三个前提。但是,这不切合实际。你看,最开始覆土零点六米,中间段覆土变成了二点六米,后半段因为管线和道路坡度一致,都是二点六米。没错吧?”
“没错。”
“好,假如我把后半段,管线坡度改为千分之一,这样,一千米降一米,结合道路是一千米降两米,终点覆土就变成了一点六米。照样符合排水管布置的三个前提。没错吧?所以说,那个代码有bug,存在缺陷。”
“等等。”戚斌暄叫停,缕了下思路,又拿出一张纸划拉了几下,然后说道:“恩,你说的没错,这种情况确实存在。但是那也只能说明你那个情况是更加优化的选择吧。不能说原代码存在缺陷吧?”
“不,这中间差别很大啊。”孙沐接着解释道:“你看,终点的覆土多了一米,说明了管道布置就深了一米。这个你能明白吧?然后呢,就费工费料费钱,增加了投入。一千米显不出来,但是城市管网可不止一千米,一千米之后的布置都要累计加上这挖深的一米,那浪费的可就是天文数字了。”
“嘶——”戚斌暄这才明白问题出在哪里:“果然,一个bug,能损失这么多钱啊。”
孙沐叹道:“是啊,但是不仅如此,浪费钱是一个方面,还有就是可能导致管线布置不下去,造成方案失败。”
“这倒不至于吧?”戚斌暄疑惑地问道:“按照原来的代码,不是也能正常排水吗?”
孙沐说道:“那就要结合出水口考虑了。出水口一般设置在河道,让雨水顺着河道就流走了。但是呢,河道可是有高度的。比方说比路面低三米,但是按照那个代码,出水口成了低五米,那怎么流?反而成河水倒灌了。所以他那个很不合理。”
“这么一说我就明白了。那看来你发现的这个缺陷很重要啊。你提出来肯定能够获得领导重视的。”
孙沐这时候耷拉着脑袋,说道:“不,我被开除了。”
“啥?”戚斌暄问道:“为什么啊?”
“我当时跟组长反映,然后组长说这个代码逻辑严谨,没问题。我跟他据理力争,解释画图,怎么都说服不了他。最后他也急了,说我技术不行,还一根筋,不接受领导的正确建议,然后跟上级反映,把我开除了。”
“怎么这样啊?”戚斌暄疑惑道:“不合理呀。”
“后来我同事私下里跟我说,那个代码是组长编的,还深受领导好评。我那是挖人家根基呢。哼,一个明明发现错误,但是却死不悔改的程序员,不是个真正的程序员。”