天天看點

鮮為人知的程式設計真相

鮮為人知的程式設計真相

當程式員的經曆讓我知道了一些關于軟體程式設計的事情。下面的這些事情可能會讓朋友們對軟體開發感到驚訝:

一個程式員用在寫程式上的時間大概占他的工作時間的10-20%

,大部分的程式員每天大約能寫出10-12

行的能進入最終的産品的代碼

— —不管他的技術水準有多高。

好的程式員花去90%

的時間在思考、研究和實驗,來找出最優方案

。差的程式員花去90%

的時間在調試問題程式、盲目的修改程式,期望某種寫法能可行。

”一個卓越的車床工可以要求比一個一般的車床工多拿數倍高的工資,但一個卓越的軟體寫手的價值會10000

倍于一個普通的寫手。“

— — 比爾 蓋茨

一個好的程式員的效率會是一個普通的程式員的十倍之上。一個偉大的程式員的效率會是一個普通程式員的20-100

倍。這不是誇張 — — 1960

年以來的無數研究都一緻的證明了這一點。一個差的程式員不僅僅是沒效率

— — 他不僅不能完成任務,寫出的大量代碼也讓别人頭痛的沒法維護。

偉大的程式員隻花很少的時間去寫代碼 — — 至少指那些最終形成産品的代碼。那些要花掉大量時間寫代碼的程式員都是太懶惰,太自大,太傲慢,不屑用現有的方案去解決老問題。偉大的程式員的精明之處在于懂得欣賞和重複利用通用模式。

好的程式員并不害怕經常的重構(重寫)他們的代碼以求達到最好效果

。差的程式員寫的代碼缺乏整體概念,備援,沒有層次,沒有模式,導緻很難重構。把這些代碼扔掉重做也比修改起來容易。

軟體遵循熵的定律,跟其它所有東西一樣。持續的變更會導緻軟體腐爛,腐蝕掉對原始設計的完整性概念。軟體的腐爛是不可避免的,但程式員在開發軟體時沒有考慮完整性,将會使軟體腐爛的如此之快,以至于軟體在還沒有完成之前就已經毫無價值了。軟體完整性上的熵變可能是軟體項目失敗最常見的原因。(第二大常見失敗原因是做出的不是客戶想要的東西。)軟體腐爛使開發進度呈指數級速度放緩,大量的軟體在失敗之前都是面對着突增的時間要求和資金預算。

2004

年的一項研究表明大多數的軟體項目(51%

)會在關鍵功能上失敗,其中15%

是完全的失敗。這比1994

年前有很大的改進,當時是31%

盡管大多數軟體都是團體開發的,但這并不是一項民主的活動。通常,一個人負責設計,其他人負責實作細節。

程式設計是個很難的工作。是一種劇烈的腦力勞動。

好的程式員7

×24

小時的思考他們的工作

。他們最重要的程式都是在淋浴時、睡夢中寫成的。因為這最重要的工作都是在遠離鍵盤的情況下完成的,是以軟體工程不可能通過增加在辦公室的工作時間或增加人手來加快進度。

繼續閱讀