飢餓的程式設計師

發表於2012-01-20

英文原文:jstorimer,編譯:oschina

程式設計就像是吃飯。今晚我加班,有點餓,沒有廚房,沒有小吃。環顧四周,我只看到街角的麥當勞。

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

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

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

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

這裡有兩點:

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

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

程式碼如食物

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

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

做健康的選擇

像對待食物一樣來對待程式碼。

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

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

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

如何做決定?

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

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

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

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

 

相關文章