選書網 > 創客茶社 > 正文卷 第八十六章 一根筋的程序員

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

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

    戚斌暄喊了聲:“孫木頭。”那人轉過頭來,看來也認出了戚斌暄,尷尬地笑笑,說的:“原來是斌暄啊,你不是當兵去了嗎?在這干嘛。”

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

    “哎,一言難盡啊。”孫木頭嘆了口氣,有著深深的無奈。

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

    孫沐看看手機,說道:“單子都送完了,行啊,好久不見,咱們聊聊。”

    孫沐坐下來,接過戚斌暄遞過來的茶水問道:“你這腿怎么了?”

    “當兵時受傷了,不過不礙事,基本上痊愈了,拄著拐走路沒問題。”然后戚斌暄半開玩笑的問:“現在送外**程序員掙錢嗎,你怎么改行了。”

    孫沐開始倒苦水:“哎,工作不容易啊。我一開始在一家私人公司干活,雖然加班,卻也沒啥。咱就是干的這活,但是連著三個月不發工資就不像話了。于是一怒之下,我們幾個干活的聯合起來把老板告了。雖然大理寺判贏了,但是老板也把我們開除了。”

    這不廢話嗎,你們將老板告了,能再用你們才怪呢。

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

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

    戚斌暄眼睛斜著向上望了望天,思考了幾秒,然后說道:“了解的不多。我聽說程序一般比較死板,嚴格按照代碼規定辦事。比方說有個程序員老婆給他說,你去上街買幾斤蘋果,要是看見西瓜,就買一個。然后程序員買水果回來,只帶了一個蘋果。因為按照代碼規定,‘看見西瓜’就相當于條件代碼,‘買一個’就成了改變‘買幾斤水果’的執行代碼了,所以就應該‘買一個蘋果’了。”

    孫沐聽后會心地笑了起來,最開始被熟人認出來的尷尬也逐漸淡去,接著說道:“這個是老段子了。不過這個段子有個致命的bug,恩,也就是缺陷。”

    “哈哈,這個我還是能聽懂的。不過缺陷在哪?”

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

    戚斌暄也是哈哈大笑起來:“你還是這么喜歡自嘲。”

    “這可不是自嘲,這是自黑。”孫沐也笑著說道:“程序員是所有行業中最喜歡黑自己的,當年我大宋朝第一土豪程序員就狠狠的黑了一把自己。記得是有個非常著名的報紙報道了一個專題,名字叫《屌絲:一個字頭的誕生》。然后第一土豪史大程序員就立馬搶注屌絲網游商標,那是一個他的頭像,旁邊寫著‘我為屌絲代言’。”

    “哈哈,有意思。不過你有點跑題了,你剛才說的排水軟件怎么了?”

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

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

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

    “懂啊,基本的邏輯前提嗎。再說了,咱是土木專業的,算是半個老本行了。”

    “那好,接下來給你解釋你就明白了。首先,按照第二條要求,要保障管道大于千分之一的最低坡度,也就是布置一千米最少高程要下降一米;按照第三條要求,要保證覆土,也就是土層必須大于六十公分。所以這兩個條件結合起來,那個軟件的代碼就規定了,當道路坡度大于千分之一的時候,管道坡度等于道路坡度;當道路坡度小于千分之一,甚至是反坡,反坡就是坡度向上走的路,這種時候,管道坡度就取千分之一。這個規定你感覺有毛病嗎?”

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

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

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

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

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

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

    “沒錯。”

    “好,假如我把后半段,管線坡度改為千分之一,這樣,一千米降一米,結合道路是一千米降兩米,終點覆土就變成了一點六米。照樣符合排水管布置的三個前提。沒錯吧?所以說,那個代碼有bug,存在缺陷。”

    “等等。”戚斌暄叫停,縷了下思路,又拿出一張紙劃拉了幾下,然后說道:“恩,你說的沒錯,這種情況確實存在。但是那也只能說明你那個情況是更加優化的選擇吧。不能說原代碼存在缺陷吧?”

    “不,這中間差別很大啊。”孫沐接著解釋道:“你看,終點的覆土多了一米,說明了管道布置就深了一米。這個你能明白吧?然后呢,就費工費料費錢,增加了投入。一千米顯不出來,但是城市管網可不止一千米,一千米之后的布置都要累計加上這挖深的一米,那浪費的可就是天文數字了。”

    “嘶——”戚斌暄這才明白問題出在哪里:“果然,一個bug,能損失這么多錢啊。”

    孫沐嘆道:“是啊,但是不僅如此,浪費錢是一個方面,還有就是可能導致管線布置不下去,造成方案失敗。”

    “這倒不至于吧?”戚斌暄疑惑地問道:“按照原來的代碼,不是也能正常排水嗎?”

    孫沐說道:“那就要結合出水口考慮了。出水口一般設置在河道,讓雨水順著河道就流走了。但是呢,河道可是有高度的。比方說比路面低三米,但是按照那個代碼,出水口成了低五米,那怎么流?反而成河水倒灌了。所以他那個很不合理。”

    “這么一說我就明白了。那看來你發現的這個缺陷很重要啊。你提出來肯定能夠獲得領導重視的。”

    孫沐這時候耷拉著腦袋,說道:“不,我被開除了。”

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

    “我當時跟組長反映,然后組長說這個代碼邏輯嚴謹,沒問題。我跟他據理力爭,解釋畫圖,怎么都說服不了他。最后他也急了,說我技術不行,還一根筋,不接受領導的正確建議,然后跟上級反映,把我開除了。”

    “怎么這樣啊?”戚斌暄疑惑道:“不合理呀。”

    “后來我同事私下里跟我說,那個代碼是組長編的,還深受領導好評。我那是挖人家根基呢。哼,一個明明發現錯誤,但是卻死不悔改的程序員,不是個真正的程序員。”
新書推薦: 世間悲惡2孤兒愿 我的重返人生 我家后院通仙界 逆鱗 那年我們同過窗 重生芯工帝國 都市最強戰兵 尋龍 巔峰神相 還有比你更廢的系統嗎
481彩票网