首頁 都市

創(chuàng)客茶社

第八十六章 一根筋的程序員

創(chuàng)客茶社 鯤霸 3065 2019-11-26 21:55:17

  這天,戚斌暄正在店里備課,一個送外賣的來給茶客送餐。戚斌暄抬頭瞄了一眼,然后接著準備備課,忽然,他感覺那個送外賣的很眼熟,再仔細看看,原來是自己的發(fā)小,孫沐,外號孫木頭。

  戚斌暄喊了聲:“孫木頭?!蹦侨宿D(zhuǎn)過頭來,看來也認出了戚斌暄,尷尬地笑笑,說的:“原來是斌暄啊,你不是當兵去了嗎?在這干嘛。”

  “退伍了唄,幫我爸看店。我聽說你是程序員啊,怎么送外賣了?”

  “哎,一言難盡啊?!睂O木頭嘆了口氣,有著深深的無奈。

  戚斌暄問他有空沒,好久不見,有空就坐下來聊聊。

  孫沐看看手機,說道:“單子都送完了,行啊,好久不見,咱們聊聊?!?p>  孫沐坐下來,接過戚斌暄遞過來的茶水問道:“你這腿怎么了?”

  “當兵時受傷了,不過不礙事,基本上痊愈了,拄著拐走路沒問題?!比缓笃荼箨寻腴_玩笑的問:“現(xiàn)在送外賣比程序員掙錢嗎,你怎么改行了?!?p>  孫沐開始倒苦水:“哎,工作不容易啊。我一開始在一家私人公司干活,雖然加班,卻也沒啥。咱就是干的這活,但是連著三個月不發(fā)工資就不像話了。于是一怒之下,我們幾個干活的聯(lián)合起來把老板告了。雖然大理寺判贏了,但是老板也把我們開除了?!?p>  這不廢話嗎,你們將老板告了,能再用你們才怪呢。

  戚斌暄又問:“那之后你也可以接著去別的地方干啊,干嘛改行呢?”

  孫沐接著說道:“之后,我就去了一家小型開發(fā)加密狗的軟件公司。我參與開發(fā)的是一個市政道路的排水軟件。工作期間,我發(fā)現(xiàn)了這款軟件有一個程序上的問題。對了,你對程序了解嗎?”

  戚斌暄眼睛斜著向上望了望天,思考了幾秒,然后說道:“了解的不多。我聽說程序一般比較死板,嚴格按照代碼規(guī)定辦事。比方說有個程序員老婆給他說,你去上街買幾斤蘋果,要是看見西瓜,就買一個。然后程序員買水果回來,只帶了一個蘋果。因為按照代碼規(guī)定,‘看見西瓜’就相當于條件代碼,‘買一個’就成了改變‘買幾斤水果’的執(zhí)行代碼了,所以就應該‘買一個蘋果’了?!?p>  孫沐聽后會心地笑了起來,最開始被熟人認出來的尷尬也逐漸淡去,接著說道:“這個是老段子了。不過這個段子有個致命的bug,恩,也就是缺陷?!?p>  “哈哈,這個我還是能聽懂的。不過缺陷在哪?”

  “這個說的是程序員老婆給他說的,這怎么可能???程序員怎么會有老婆呢?”

  戚斌暄也是哈哈大笑起來:“你還是這么喜歡自嘲?!?p>  “這可不是自嘲,這是自黑?!睂O沐也笑著說道:“程序員是所有行業(yè)中最喜歡黑自己的,當年我大宋朝第一土豪程序員就狠狠的黑了一把自己。記得是有個非常著名的報紙報道了一個專題,名字叫《屌絲:一個字頭的誕生》。然后第一土豪史大程序員就立馬搶注屌絲網(wǎng)游商標,那是一個他的頭像,旁邊寫著‘我為屌絲代言’?!?p>  “哈哈,有意思。不過你有點跑題了,你剛才說的排水軟件怎么了?”

  “偶,跟這個也有點相關(guān),不算跑題?!睂O沐笑道,接著解釋:“從剛才兩三個笑話你應該能夠看出我們程序員的一些特點,就是過謙。知道什么叫做過謙嗎?就是過了頭的謙虛。意思是程序員除了對自己技術(shù)的態(tài)度是自傲的,對其他一切都是過謙的。但是這個謙虛不是重點,重點是對自己技術(shù)的自傲。專業(yè)領域,就是我的地盤!”

  孫沐說這話的時候,自帶著一股傲氣,喝了一口茶,接著說道:“我在研究那個排水軟件的時候,發(fā)現(xiàn)了一個bug,會導致排水管線高程控制不合理。排水管線你懂嗎?就是城市管網(wǎng)的排水系統(tǒng)。這個排水管布置有三個前提。一是要遵循水流是從高往低流的客觀規(guī)律,也就是管道進口高,出口低;二是要大于一定的坡度,保障水流通暢,有一定的流速;三是管道和路面要有一定的覆土,也就是覆蓋土的厚度,保障管道不會被過往車輛等損壞。恩,我說的這些你懂嗎?”

  孫沐又問了一遍,畢竟這些知識點的前提都不懂,自己之后的解釋肯定也不懂了,那也沒啥意思不是。

  “懂啊,基本的邏輯前提嗎。再說了,咱是土木專業(yè)的,算是半個老本行了?!?p>  “那好,接下來給你解釋你就明白了。首先,按照第二條要求,要保障管道大于千分之一的最低坡度,也就是布置一千米最少高程要下降一米;按照第三條要求,要保證覆土,也就是土層必須大于六十公分。所以這兩個條件結(jié)合起來,那個軟件的代碼就規(guī)定了,當?shù)缆菲露却笥谇Х种坏臅r候,管道坡度等于道路坡度;當?shù)缆菲露刃∮谇Х种?,甚至是反坡,反坡就是坡度向上走的路,這種時候,管道坡度就取千分之一。這個規(guī)定你感覺有毛病嗎?”

  戚斌暄想了想,說道:“應該沒啥毛病吧?”

  孫沐正色地說道:“不,毛病大了去了。編制程序是嚴謹?shù)?,必須考慮多種情況,還需要結(jié)合運行的反饋修改修正。排水管線的布置,需要考慮的實際情況有很多,怎么能夠只根據(jù)這兩條就去設置呢?比方說我就找到了一個不合理的情況。你看,假設排水管線從起點到終點的布置,總長兩千米平均分為兩段,一段一千米。起點到一千米處,設置反坡,道路升了一米。這時候就要求管線按照降一米的最小坡度計算,也就是說,起點管線覆土六十公分,到一千米處覆土一點六米。沒錯吧?”

  戚斌暄腦中回想了下大概圖形,就是近似大于號的兩條線,上邊的是道路,下邊的是排水管,然后對照要求,說道:“沒錯。”

  “好,那從一千米到兩千米處,道路坡度變成了下降兩米,大于最小坡度,所以按照代碼規(guī)定,管道坡度等于道路坡度,也就是一千米下降兩米,這個沒問題吧?”

  戚斌暄腦中浮現(xiàn)出了兩個平行線,方向向右下,然后回到:“應該也沒問題吧?”

  孫木頭這時候笑著說道:“不,有問題。雖然按照代碼的規(guī)則是對的,也能滿足排水管布置的三個前提。但是,這不切合實際。你看,最開始覆土零點六米,中間段覆土變成了二點六米,后半段因為管線和道路坡度一致,都是二點六米。沒錯吧?”

  “沒錯?!?p>  “好,假如我把后半段,管線坡度改為千分之一,這樣,一千米降一米,結(jié)合道路是一千米降兩米,終點覆土就變成了一點六米。照樣符合排水管布置的三個前提。沒錯吧?所以說,那個代碼有bug,存在缺陷?!?p>  “等等?!逼荼箨呀型#|了下思路,又拿出一張紙劃拉了幾下,然后說道:“恩,你說的沒錯,這種情況確實存在。但是那也只能說明你那個情況是更加優(yōu)化的選擇吧。不能說原代碼存在缺陷吧?”

  “不,這中間差別很大啊?!睂O沐接著解釋道:“你看,終點的覆土多了一米,說明了管道布置就深了一米。這個你能明白吧?然后呢,就費工費料費錢,增加了投入。一千米顯不出來,但是城市管網(wǎng)可不止一千米,一千米之后的布置都要累計加上這挖深的一米,那浪費的可就是天文數(shù)字了?!?p>  “嘶——”戚斌暄這才明白問題出在哪里:“果然,一個bug,能損失這么多錢啊?!?p>  孫沐嘆道:“是啊,但是不僅如此,浪費錢是一個方面,還有就是可能導致管線布置不下去,造成方案失敗?!?p>  “這倒不至于吧?”戚斌暄疑惑地問道:“按照原來的代碼,不是也能正常排水嗎?”

  孫沐說道:“那就要結(jié)合出水口考慮了。出水口一般設置在河道,讓雨水順著河道就流走了。但是呢,河道可是有高度的。比方說比路面低三米,但是按照那個代碼,出水口成了低五米,那怎么流?反而成河水倒灌了。所以他那個很不合理?!?p>  “這么一說我就明白了。那看來你發(fā)現(xiàn)的這個缺陷很重要啊。你提出來肯定能夠獲得領導重視的?!?p>  孫沐這時候耷拉著腦袋,說道:“不,我被開除了。”

  “啥?”戚斌暄問道:“為什么啊?”

  “我當時跟組長反映,然后組長說這個代碼邏輯嚴謹,沒問題。我跟他據(jù)理力爭,解釋畫圖,怎么都說服不了他。最后他也急了,說我技術(shù)不行,還一根筋,不接受領導的正確建議,然后跟上級反映,把我開除了?!?p>  “怎么這樣啊?”戚斌暄疑惑道:“不合理呀。”

  “后來我同事私下里跟我說,那個代碼是組長編的,還深受領導好評。我那是挖人家根基呢。哼,一個明明發(fā)現(xiàn)錯誤,但是卻死不悔改的程序員,不是個真正的程序員?!?

鯤霸

本章中軟件的例子現(xiàn)實中確實存在,作者寫的也很用心,經(jīng)過反復推敲,盡量介紹的簡單易懂、專業(yè)性不那么強,讓讀者能夠一目了然。略有燒腦,見諒勿怪。

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設置
設置
書架
加入書架
書頁
返回書頁
指南