饑餓的碼農

fmms 12年前發布 | 6K 次閱讀 程序員

        編程就像是吃飯。

        今晚我加班,有點餓,沒有廚房,沒有小吃。環顧四周,我只看到街角的麥當勞。

        于是我就面臨了一個選擇難題,我是現在去吃垃圾食品來填飽肚子呢還是再忍一忍,然后回家吃一頓健康的?

        在我思考這個問題的時候,我不由自主的將這個問題和代碼的質量聯系了起來。

饑餓的碼農

        健康的飲食是連續非離散的?

        顯然吃麥當勞不是健康的飲食。但是吃麥當勞巨無霸的時候,配色拉要比配薯條健康一點。去星巴克買一個金槍魚面皮卷顯然要比任何麥當勞套餐健康。去當地的小店喝一碗熱湯顯然要比星巴克的金槍魚面皮卷健康。當然,自己在家做一頓新鮮的晚餐比上述的任何飲食都要健康。

        這里有兩點:

        1. 任何東西都是相對的。你總是可以做的更好或者更差。吃巨無霸不等于自殺,但是整天不吃飯就等著回家的新鮮晚餐也是不健康的。

        2. 每頓飯都是獨立的。我今天吃了麥當勞并不代表我明天也要吃麥當勞。通常情況下,每一頓飯吃什么的決定都是一個獨立的判斷。

        代碼如食物

        和食物一樣,代碼的質量也是連續的。

        簡單的來講,沒有經過測試,沒有文檔的代碼要比有測試和文檔的代碼的質量低。但是事實往往比這個復雜,就像是一灘渾水。每個人都有他們自己的標 準來判斷代碼的好壞。有些人很清楚自己的編程習慣和問題,也懂得如何改進。而有些人則一直在寫著垃圾代碼,并不考慮他們的代碼是否健康。

        做健康的選擇

        像對待食物一樣來對待代碼。

        就如你必須得吃東西一樣,你必須得提交代碼。但是你怎么吃或者怎么提交將會產生短期和長期的影響。

        如果你采用麥當勞式的方法,那你就是發布了垃圾代碼,但是滿足了短期的需求。但是你會嘗到長期的惡果。你的代碼將難以維護,不會擁有健康的未來。

        如果你采用自己做飯的方法,那你就必須忍受一段時間的“饑餓”。短期來看你是餓著了,但是長遠的來看,效果是正面的。

        如何做決定?

        編寫健康的代碼和健康的飲食有相同的要求:意識到并且堅持做。從吃垃圾食品到吃健康的食物需要首先意識到吃的東西可以改進。要執行這個改進,你需要堅持你的決定。編程也是一樣的。

        不管怎樣,你的選擇必須實用。你必須得吃東西,你的代碼在將來的某個時刻必須提交。在沒有選擇的情況下,麥當勞也得吃。就如很多時候,你必須提 交寫的像狗屎一樣的代碼。但是請記住,健康的編碼是連續的。在不能完全達到“健康”的狀況下,你可以改進一點點,就如吃巨無霸的時候可以配色拉,而非薯 條。

        世界上沒有最健康的實物。任何東西在進到你胃里之前,對你都沒有任何好處。同樣的,代碼質量是很重要,但是你不發布你的代碼的話也是一無用處。

        增量改進你的代碼是不錯的選擇。每天進步一點點,而不是推翻重來 :)

        英文原文

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!