800小说网 www.800xs.so,最快更新创客茶社 !
这天,戚斌暄正在店里备课,一个送外卖的来给茶客送餐。戚斌暄抬头瞄了一眼,然后接着准备备课,忽然,他感觉那个送外卖的很眼熟,再仔细看看,原来是自己的发小,孙沐,外号孙木头。
戚斌暄喊了声:“孙木头。”那人转过头来,看来也认出了戚斌暄,尴尬地笑笑,说的:“原来是斌暄啊,你不是当兵去了吗?在这干嘛。”
“退伍了呗,帮我爸看店。我听说你是程序员啊,怎么送外卖了?”
“哎,一言难尽啊。”孙木头叹了口气,有着深深的无奈。
戚斌暄问他有空没,好久不见,有空就坐下来聊聊。
孙沐看看手机,说道:“单子都送完了,行啊,好久不见,咱们聊聊。”
孙沐坐下来,接过戚斌暄递过来的茶水问道:“你这腿怎么了?”
“当兵时受伤了,不过不碍事,基本上痊愈了,拄着拐走路没问题。”然后戚斌暄半开玩笑的问:“现在送外**程序员挣钱吗,你怎么改行了。”
孙沐开始倒苦水:“哎,工作不容易啊。我一开始在一家私人公司干活,虽然加班,却也没啥。咱就是干的这活,但是连着三个月不发工资就不像话了。于是一怒之下,我们几个干活的联合起来把老板告了。虽然大理寺判赢了,但是老板也把我们开除了。”
这不废话吗,你们将老板告了,能再用你们才怪呢。
戚斌暄又问:“那之后你也可以接着去别的地方干啊,干嘛改行呢?”
孙沐接着说道:“之后,我就去了一家小型开发加密狗的软件公司。我参与开发的是一个市政道路的排水软件。工作期间,我发现了这款软件有一个程序上的问题。对了,你对程序了解吗?”
戚斌暄眼睛斜着向上望了望天,思考了几秒,然后说道:“了解的不多。我听说程序一般比较死板,严格按照代码规定办事。比方说有个程序员老婆给他说,你去上街买几斤苹果,要是看见西瓜,就买一个。然后程序员买水果回来,只带了一个苹果。因为按照代码规定,‘看见西瓜’就相当于条件代码,‘买一个’就成了改变‘买几斤水果’的执行代码了,所以就应该‘买一个苹果’了。”
孙沐听后会心地笑了起来,最开始被熟人认出来的尴尬也逐渐淡去,接着说道:“这个是老段子了。不过这个段子有个致命的bug,恩,也就是缺陷。”
“哈哈,这个我还是能听懂的。不过缺陷在哪?”
“这个说的是程序员老婆给他说的,这怎么可能啊?程序员怎么会有老婆呢?”
戚斌暄也是哈哈大笑起来:“你还是这么喜欢自嘲。”
“这可不是自嘲,这是自黑。”孙沐也笑着说道:“程序员是所有行业中最喜欢黑自己的,当年我大宋朝第一土豪程序员就狠狠的黑了一把自己。记得是有个非常著名的报纸报道了一个专题,名字叫《屌丝:一个字头的诞生》。然后第一土豪史大程序员就立马抢注屌丝网游商标,那是一个他的头像,旁边写着‘我为屌丝代言’。”
“哈哈,有意思。不过你有点跑题了,你刚才说的排水软件怎么了?”
“偶,跟这个也有点相关,不算跑题。”孙沐笑道,接着解释:“从刚才两三个笑话你应该能够看出我们程序员的一些特点,就是过谦。知道什么叫做过谦吗?就是过了头的谦虚。意思是程序员除了对自己技术的态度是自傲的,对其他一切都是过谦的。但是这个谦虚不是重点,重点是对自己技术的自傲。专业领域,就是我的地盘!”
孙沐说这话的时候,自带着一股傲气,喝了一口茶,接着说道:“我在研究那个排水软件的时候,发现了一个bug,会导致排水管线高程控制不合理。排水管线你懂吗?就是城市管网的排水系统。这个排水管布置有三个前提。一是要遵循水流是从高往低流的客观规律,也就是管道进口高,出口低;二是要大于一定的坡度,保障水流通畅,有一定的流速;三是管道和路面要有一定的覆土,也就是覆盖土的厚度,保障管道不会被过往车辆等损坏。恩,我说的这些你懂吗?”
孙沐又问了一遍,毕竟这些知识点的前提都不懂,自己之后的解释肯定也不懂了,那也没啥意思不是。
“懂啊,基本的逻辑前提吗。再说了,咱是土木专业的,算是半个老本行了。”
“那好,接下来给你解释你就明白了。首先,按照第二条要求,要保障管道大于千分之一的最低坡度,也就是布置一千米最少高程要下降一米;按照第三条要求,要保证覆土,也就是土层必须大于六十公分。所以这两个条件结合起来,那个软件的代码就规定了,当道路坡度大于千分之一的时候,管道坡度等于道路坡度;当道路坡度小于千分之一,甚至是反坡,反坡就是坡度向上走的路,这种时候,管道坡度就取千分之一。这个规定你感觉有毛病吗?”
戚斌暄想了想,说道:“应该没啥毛病吧?”
孙沐正色地说道:“不,毛病大了去了。编制程序是严谨的,必须考虑多种情况,还需要结合运行的反馈修改修正。排水管线的布置,需要考虑的实际情况有很多,怎么能够只根据这两条就去设置呢?比方说我就找到了一个不合理的情况。你看,假设排水管线从起点到终点的布置,总长两千米平均分为两段,一段一千米。起点到一千米处,设置反坡,道路升了一米。这时候就要求管线按照降一米的最小坡度计算,也就是说,起点管线覆土六十公分,到一千米处覆土一点六米。没错吧?”
戚斌暄脑中回想了下大概图形,就是近似大于号的两条线,上边的是道路,下边的是排水管,然后对照要求,说道:“没错。”
“好,那从一千米到两千米处,道路坡度变成了下降两米,大于最小坡度,所以按照代码规定,管道坡度等于道路坡度,也就是一千米下降两米,这个没问题吧?”
戚斌暄脑中浮现出了两个平行线,方向向右下,然后回到:“应该也没问题吧?”
孙木头这时候笑着说道:“不,有问题。虽然按照代码的规则是对的,也能满足排水管布置的三个前提。但是,这不切合实际。你看,最开始覆土零点六米,中间段覆土变成了二点六米,后半段因为管线和道路坡度一致,都是二点六米。没错吧?”
“没错。”
“好,假如我把后半段,管线坡度改为千分之一,这样,一千米降一米,结合道路是一千米降两米,终点覆土就变成了一点六米。照样符合排水管布置的三个前提。没错吧?所以说,那个代码有bug,存在缺陷。”
“等等。”戚斌暄叫停,缕了下思路,又拿出一张纸划拉了几下,然后说道:“恩,你说的没错,这种情况确实存在。但是那也只能说明你那个情况是更加优化的选择吧。不能说原代码存在缺陷吧?”
“不,这中间差别很大啊。”孙沐接着解释道:“你看,终点的覆土多了一米,说明了管道布置就深了一米。这个你能明白吧?然后呢,就费工费料费钱,增加了投入。一千米显不出来,但是城市管网可不止一千米,一千米之后的布置都要累计加上这挖深的一米,那浪费的可就是天文数字了。”
“嘶——”戚斌暄这才明白问题出在哪里:“果然,一个bug,能损失这么多钱啊。”
孙沐叹道:“是啊,但是不仅如此,浪费钱是一个方面,还有就是可能导致管线布置不下去,造成方案失败。”
“这倒不至于吧?”戚斌暄疑惑地问道:“按照原来的代码,不是也能正常排水吗?”
孙沐说道:“那就要结合出水口考虑了。出水口一般设置在河道,让雨水顺着河道就流走了。但是呢,河道可是有高度的。比方说比路面低三米,但是按照那个代码,出水口成了低五米,那怎么流?反而成河水倒灌了。所以他那个很不合理。”
“这么一说我就明白了。那看来你发现的这个缺陷很重要啊。你提出来肯定能够获得领导重视的。”
孙沐这时候耷拉着脑袋,说道:“不,我被开除了。”
“啥?”戚斌暄问道:“为什么啊?”
“我当时跟组长反映,然后组长说这个代码逻辑严谨,没问题。我跟他据理力争,解释画图,怎么都说服不了他。最后他也急了,说我技术不行,还一根筋,不接受领导的正确建议,然后跟上级反映,把我开除了。”
“怎么这样啊?”戚斌暄疑惑道:“不合理呀。”
“后来我同事私下里跟我说,那个代码是组长编的,还深受领导好评。我那是挖人家根基呢。哼,一个明明发现错误,但是却死不悔改的程序员,不是个真正的程序员。”