新聞中心
昨天,一位老上級邀請我一起吃午餐。當坐在哪里等待上菜時,我們緬懷起早期這個公司的往事。他有一句話讓我心里一虛:

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供黃平網(wǎng)站建設(shè)、黃平做網(wǎng)站、黃平網(wǎng)站設(shè)計、黃平網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、黃平企業(yè)網(wǎng)站模板建站服務(wù),十多年黃平做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
啊,你這個判官…我記得當你看到Dan(公司的第一位程序員)寫的代碼時的樣子。你說:“這代碼寫的真爛,需要重寫!”
我恐怕是沒有足夠的勇氣告訴他,我這“代碼需要重寫”的主張是錯誤的。不錯,我認為這代碼寫的很亂。但是,據(jù)過去歷次的經(jīng)驗,我感覺大部分的程序員看著別人寫的程序時都會想:這代碼寫的真爛。事實上,當一個程序員數(shù)年后再看自己寫過的程序時也會想:這代碼寫的真爛。也許他們想的是對的;這代碼確實很爛。
但是,如果你認為代碼需要重寫,你將犯下一個低級錯誤。
公司里有一些想當然的看法會讓你可能現(xiàn)在不能認識到這點。大量的不成文的想當然的觀點可能會讓你無法解釋清楚。
我喜歡Joel Spolsky說的關(guān)于這種事情的話,有些事情你永遠不要去做:
我們是程序員。程序員,在他們自己的心里,是建筑師,當他們來到一個地點,第一件想要做的事情就是:把這地方推平,蓋上輝煌的建筑。他們對慢慢的修繕沒有興趣:小修小補,改善,培植花草。
有一種不可捉摸的原因讓程序員們總是希望丟掉這些代碼、重新再寫。原因是他們認為老的代碼是混亂的。可是,你會觀察到一種非常有趣的現(xiàn)象:他們的判斷通常是錯的。他們之所以會認為老的代碼很爛的原因來自于一個重要的、基本的編程定律:
讀代碼比寫代碼要難。
這就是為什么代碼很難重用的原因。這就是為什么每個團隊喜歡用自己不同的函數(shù)來做把字符串拆分成數(shù)組操作的原因。他們要寫自己的方法,這更容易,更有趣,不需要弄清楚老的函數(shù)的工作原理。
根據(jù)這種定律必然得出這樣的一個結(jié)論,你現(xiàn)在可以問一問任何一個程序員,問他們對正在寫的程序感覺如何。“亂的不能再亂了,”他們會這樣告訴你?!拔覍幵赴阉鼈兌紕h了重新再寫?!?/p>
當你招募來了一個程序員,如果他想重寫看來工作的不錯的程序,你要抵制。他也許會說Java過時了,太慢,Ruby on Rails如何的酷。也許他會向你拋了一大堆專業(yè)名稱術(shù)語。不管他如何做,你要三思而行。
你覺得呢?
分享標題:抵制代碼重寫,程序員開發(fā)之道
分享URL:http://fisionsoft.com.cn/article/cosgcop.html


咨詢
建站咨詢
