于2010-08-27 13:34:18 編程原來有這么多不為人知的道理,.net專家David Veksler告訴你偉大的程序員為什么偉大,爛程序員為何將一如既往的爛下去。 多年的程序員經(jīng)歷告訴我一些不為人知的東西: 程序員編碼的時間僅占整個項目的10-20%,不管他們技術(shù)多高超,絕大多數(shù)程序員每天所寫的代碼僅有10-12行最終會納入到最后發(fā)布的產(chǎn)品中。優(yōu)秀的程序員會把令外90%的時間花在思考,探索,去找尋最佳的設(shè)計方案。而普通程序員漫無目的的修改他們的代碼,不厭其煩的編譯調(diào)試來看修改是否奏效。 “偉大的車工值得付給他幾倍于普通車工的薪水,但一個偉大的程序員,其價值則要等同于一個普通程序員的1萬倍”。--比爾`蓋茨 優(yōu)秀的程序效率十倍于一般程序員,而一個偉大的程序員效率則是普通程序員的20-100倍。這一點都不夸張,上世紀六十年代的研究早就證明了這一斷言。爛程序員不僅沒法完成分內(nèi)的工作,還會給后來接手者留下令人抓狂的爛攤子。 那些把時間都花在寫代碼的程序員實在太懶,太愚昧,或者根本“不屑于”從自己的經(jīng)驗中尋找現(xiàn)成的解決方案。優(yōu)秀的程序員擅長總結(jié)和重用一些通用的設(shè)計模式,為了尋找更加完美的方案,他們會時常重構(gòu)(or重寫)自己的代碼。而爛程序員寫出來的代碼連基本的概念完整性都達不到,更何況沒有冗余,擁有明晰的層次結(jié)構(gòu)了,所以這樣的代碼很難去重構(gòu)。還不如拋開它自己寫一套。 軟件和其他萬物共同遵循逐漸衰敗腐朽的一般原則。無休止的修改只能導(dǎo)致軟件最終凌亂不堪,破壞了概念完整性原則,背離原始設(shè)計。軟件腐朽(定義見wikipedia)雖然無法避免,但是,那些一開始就沒有把概念完整性納入考慮的程序員編寫的軟件只會更快腐朽以至軟件還未完成,代碼便不能用了。軟件腐朽缺乏完整性所造成的失敗是項目失敗的罪魁禍首。(其次是忽視客戶需求,塞給客戶不需要的東西)軟件腐朽對軟件開發(fā)的影響是數(shù)以指數(shù)級的,很多項目在死掉之前會面臨超出期限和預(yù)算的巨大挑戰(zhàn)。 04年的一項研究顯示,超過51%的項目在部分模塊上面臨失敗,15%將遭遇完敗。相比94年的31%,情況已經(jīng)大大好轉(zhuǎn)。 盡管大多數(shù)項目都是由團隊合作完成,但是很多團隊并不是那么民主。大多數(shù)團隊中只有一個人負責全程設(shè)計,剩下的人只是向架構(gòu)中填充細節(jié)而已。 編程是個體力活。它同時也在不斷磨練你的心智。好的程序員不分晝夜在思考完善自己的項目。他們可能在沐浴甚至是在夢境中構(gòu)思著至關(guān)重要的那部分代碼。項目不可能通過程序員呆在辦公室花更多的時間或者動用人海戰(zhàn)術(shù)完成好,因為程序員最最要緊的工作往往是在他們撇開鍵盤時完成的。1 |
|