做過一個程序,發現8成代碼旨在保障程序的可靠性,只有2成代碼是實現核心目標的_風聞
笨笨熊-2022-10-09 07:29
【本文來自《張仲麟:C919拿證不是終點,而是新的開始》評論區,標題為小編添加】
我沒造過飛機,我想這裏絕大多數的評論者也沒造過。不過,我曾經有機會完整地做一個連鎖店進銷存程序,對於完整地做一個新東西,有一點自己的體會。
當時我開始着手做一個對我來説新的東西,目標是新的,工具是新的,這時引入外腦是很正常的事。必然會去大量地瞭解別人的程序是怎麼運行的,目標是怎麼實現的,有些難點甚至要請別人出手。經過這樣一個過程,我會發現我的水平有很大的提高,我能完整地做一個東西了。
等到我的程序能上線了,我請很多人來試用這個東西,我會發現,使用者對我的程序的理解是千奇百怪的,他們會用很多我想像不到的方式來使用我的程序。所以我必須新增大量的代碼,去限制使用者的輸入,去實現使用者輸入出錯時程序不會出錯。
再下一步,開始用大數據量長時間測試運行這個程序,有會發現,少量數據測試時正常運行的程序,在大數據量長時間測試運行時,會出現偶爾的錯誤,可能運行一萬次會出一次錯,但這一次錯可能就會導致死機。這時又要想辦法去修改程序,使之即使出錯也能正常運行。
最後會發現,80%的代碼,其目標是保障程序的可靠性,而只有20%的代碼是實現核心目標的。
在這樣一個過程中,我會從不會做,到會做,到知道為什麼這樣做,最後到為什麼不應該那樣做。這時我回頭看之前做的這個程序,我會有一種想法,想把這個程序完全推翻,從頭再寫一遍,新的程序可能就會簡潔、優美、可靠、快速、省資源。
要説明的一點是,我不是職業的程序員。我的職業是連鎖企業裏負責電腦、信息、數據運行、數據分析、監控系統等一切與電腦有關的工作的,下班就幫老婆看煙酒店,寫程序只是我的業餘愛好。這有兩點好處,一是我能從兩個方面就是我能從開發者和使用者兩個角度去考慮問題,二是在寫程序方面我沒有時間壓力,我可以用很長的時間去反覆打磨一個程序,不用急着交差。所以我也希望大家不要給他們壓力,讓他們慢慢打磨這個機型。建議先國內飛貨運,飛個三年幾十萬個架次,再説轉客運的話。走出去也要走濕租式,帶着一整套班子出去,口碑做起來了再加快。