飢腸轆轆的程式設計師
程式設計和進餐實在神似。
晚上,我飢腸轆轆,不在家,沒法下廚犒勞自己。我環顧四周,徒見街對面有家麥當勞。
於是,我又一次進退兩難,每次離家外出時間一長,就會面臨這種困境:我該馬上吃垃圾快餐填飽肚子?還是再挨會兒餓,回家吃一頓健康的?
面對這種困境,仔細一想,我不禁注意到它跟程式碼質量的關係有多緊密。不過,下面還是先繼續聊聊食物。
別人怎麼想我不知道,我只能代表自己講話,我並不認為麥當勞能為自己提供健康膳食。作為一個忠實的生食主義者,或者說關心自己吃什麼的人,麥當勞的食物和我眼裡的健康膳食相去甚遠。不過,我是吃著麥當勞快餐長大的,很長一段時間都沒想過它是否健康,相信許多讀者也一樣。我肚子餓了,而麥當勞就有吃的。
既然明白了麥當勞快餐對自己身體的短期和長期影響,我就會盡全力避開它。對一般的熟食也是如此。我為此熬了相當長一段時間。決定改變自己的飲食習慣並非一日之功,健康飲食是連續體(continuum)。
很快就會談到程式設計了。:)
健康飲食是連續體?
麥當勞快餐不是健康膳食。但是,巨無霸加配菜沙拉總比巨無霸加薯條來得健康。星巴克金槍魚卷要比巨無霸之類的食物更加健康。去本地精品咖啡館喝碗湯則要比星巴克的金槍魚卷更健康。在家用新鮮食材做的膳食則要比前面這些食物都更健康。
通過觀察食物,我們可以提煉出下面兩點:
- 一切都是相對的。你總是可以做得更好,也可以做得更糟。吃個巨無霸死不了人,但為了回家吃一頓而一整天不吃東西顯然也不健康。
- 每一餐都是全新的。人們很容易誤入陷阱:既然我昨天吃了巨無霸,今天再吃一個也無所謂。這種想法不合邏輯,也毫無益處。每次用餐都是新的抉擇。即使你早飯吃了巨無霸,午飯自己做吃的也是邁向連續體的一小步。
程式碼如食物
程式碼就像食物,也是連續體。
基本上,我們可以斷定,相比有測試和文件的程式庫,未經測試和沒有文件就釋出的同一個庫質量要差。
然而,許多事情並不是那麼黑白分明的。何為“健康”程式碼,仁者見仁,智者見智。有些人非常注意自己的程式設計習慣,不斷加以改進。有些人卻經年累月地編寫同樣的垃圾程式碼,至於那些程式碼“健康”與否,則不聞不問。
健康的選擇
視程式碼如食物。
就像人總得吃東西,程式碼也必須釋出。但是,具體怎麼做會有短期和長期影響。
如果採取麥當勞做法,釋出垃圾,那也只是滿足了短期需求。但你將切身體會到長期影響。你的程式碼維護起來將會更難,後續也需要更多精力。它不會健康長久。
如果採取自制膳食的做法,需求可能暫時得不到滿足。短期影響是你會餓肚子,不過這麼做很值得:長期影響將是正面積極的。你的程式碼將更易維護,缺陷更易修正,也更容易進行變更。你的程式碼會健康而長久。
決定
編寫健康程式碼跟健康飲食的要求一樣:識別不足和全力以赴。從吃得不健康到吃得健康得先識別出不足之處。改進不足則要求全力以赴執行決定。
要改進程式設計習慣也一樣:識別有待改進的地方,然後全力以赴加以改進。
一如既往,你的選擇必須務實。人總要吃東西,程式碼總得釋出。找到健康膳食替代之前,還得吃一陣麥當勞。我不清楚你的軟體專案有什麼限制,有時候,就算是垃圾也要釋出。只不過要記住健康程式設計是連續體。吃巨無霸時搭配沙拉,而不是薯條。
世上沒有“最健康”的膳食。你可以一整天都用來準備你所能想象的最健康的膳食,但它要是不進你的肚子,你便得不到什麼好處。程式碼質量很重要,但倘若不釋出,它就什麼也不是。
要編寫更健康的程式碼,最靠譜的做法是持續不斷的改進。每一天程式設計都更加健康一點,別想著一下子摒棄舊習慣,希冀它們馬上為新的健康習慣所替代。
相關文章
- 飢餓的程式設計師程式設計師
- 程式設計師的“非程式設計師”之路程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 程式設計師必看的書-Ruby程式設計師程式設計師
- 《程式設計師的春天:EOM與程式設計師》程式設計師
- Lisp程式設計師眼中的其他程式設計師Lisp程式設計師
- 程式設計師必看的書之Java程式設計師程式設計師Java
- 程式設計師OR非程式設計師,有些程式設計的事需要知道程式設計師
- 盲人程式設計師的程式設計生涯程式設計師
- 悲催的程式設計師,以及程式設計師的悲催程式設計師
- 程式設計師的燈下黑:“逗到底”的程式設計師程式設計師
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- 程式設計師快速睡眠攻略 失眠程式設計師的福音程式設計師
- 《程式設計師健康指南》:給程式設計師的健康書程式設計師
- 愛偷懶的程式設計師是好程式設計師程式設計師
- 程式設計師啊,程式設計師,究竟是咋的程式設計師
- 普通程式設計師和厲害程式設計師的差距!程式設計師
- 程式設計師何苦為難程式設計師?程式設計師
- 程式設計師何必難為程式設計師程式設計師
- 盲人程式設計師是如何程式設計的?程式設計師
- 糟糕程式設計師的程式設計風格程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 讓老闆開心的程式設計師不是好程式設計師程式設計師
- 程式設計師的自我修養之全棧程式設計師程式設計師全棧
- 程式設計師在國外:矽谷的那些中國程式設計師程式設計師
- 程式設計師與非程式設計師的思維差異程式設計師
- 程式設計師妻子自述:那些程式設計師教給我的程式設計師
- 程式設計師妻子自述: 那些程式設計師教給我的程式設計師
- 程式設計師的出路程式設計師
- 程式設計師的幸福程式設計師
- 程式設計師的工具程式設計師
- 程式設計師的困境程式設計師
- 理想的程式設計師程式設計師
- 程式設計師的高潮程式設計師
- 程式設計師的信仰程式設計師
- 程式設計師的“心”程式設計師
- 好程式設計師:Java程式設計師面試秘籍程式設計師Java面試
- 國外程式設計師 VS 中國程式設計師程式設計師