鮮為人知的程式設計真相
當程式設計師的經歷讓我知道了一些關於軟體程式設計的事情。下面的這些事情可能會讓朋友們對軟體開發感到驚訝:
一個程式設計師用在寫程式上的時間大概佔他的工作時間的10-20%,大部分的程式設計師每天大約能寫出10-12行的能進入最終的產品的程式碼 — —不管他的技術水平有多高。 好的程式設計師花去90%的時間在思考、研究和實驗,來找出最優方案。差的程式設計師花去90%的時間在除錯問題程式、盲目的修改程式,期望某種寫法能可行。
”一個卓越的車床工可以要求比一個一般的車床工多拿數倍高的工資,但一個卓越的軟體寫手的價值會10000倍於一個普通的寫手。“ — — 比爾 蓋茨
一個好的程式設計師的效率會是一個普通的程式設計師的十倍之上。一個偉大的程式設計師的效率會是一個普通程式設計師的20-100倍。這不是誇張 — — 1960年以來的無數研究都一致的證明了這一點。一個差的程式設計師不僅僅是沒效率 — — 他不僅不能完成任務,寫出的大量程式碼也讓別人頭痛的沒法維護。
偉大的程式設計師只花很少的時間去寫程式碼 — — 至少指那些最終形成產品的程式碼。那些要花掉大量時間寫程式碼的程式設計師都是太懶惰,太自大,太傲慢,不屑用現有的方案去解決老問題。偉大的程式設計師的精明之處在於懂得欣賞和重複利用通用模式。好的程式設計師並不害怕經常的重構(重寫)他們的程式碼以求達到最好效果。差的程式設計師寫的程式碼缺乏整體概念,冗餘,沒有層次,沒有模式,導致很難重構。把這些程式碼扔掉重做也比修改起來容易。
軟體遵循熵的定律,跟其它所有東西一樣。持續的變更會導致軟體腐爛,腐蝕掉對原始設計的完整性概念。軟體的腐爛是不可避免的,但程式設計師在開發軟體時沒有考慮完整性,將會使軟體腐爛的如此之快,以至於軟體在還沒有完成之前就已經毫無價值了。軟體完整性上的熵變可能是軟體專案失敗最常見的原因。(第二大常見失敗原因是做出的不是客戶想要的東西。)軟體腐爛使開發進度呈指數級速度放緩,大量的軟體在失敗之前都是面對著突增的時間要求和資金預算。
2004年的一項研究表明大多數的軟體專案(51%)會在關鍵功能上失敗,其中15%是完全的失敗。這比1994年前有很大的改進,當時是31%。
儘管大多數軟體都是團體開發的,但這並不是一項民主的活動。通常,一個人負責設計,其他人負責實現細節。
程式設計是個很難的工作。是一種劇烈的腦力勞動。好的程式設計師7×24小時的思考他們的工作。他們最重要的程式都是在淋浴時、睡夢中寫成的。因為這最重要的工作都是在遠離鍵盤的情況下完成的,所以軟體工程不可能透過增加在辦公室的工作時間或增加人手來加快進度。
本文由“外刊IT評論”網(www.aqee.net)榮譽出品
相關文章
- 6條鮮為人知的程式設計真相程式設計
- 一些鮮為人知的程式設計真相程式設計
- 關於程式設計一些鮮為人知的真相程式設計
- 一些鮮為人知的程式設計事實程式設計
- 鮮為人知的JavaScript功能JavaScript
- 程式設計師與程式設計一些鮮為人知的事實 軟體遵循熵的定律程式設計師熵
- JavaScript 那些鮮為人知的玩法JavaScript
- Python程式設計師鮮為人知但你應該知道的16個問題Python程式設計師
- 鮮為人知的 Python 語法Python
- 鮮為人知的 PostgreSQL 特性 - hakibenitaSQL
- 15 個鮮為人知的Unix命令
- 10款鮮為人知的PHP框架PHP框架
- 表面光鮮,實則搬磚,機器學習社群自嘲不為人知的AI工程師真相機器學習AI工程師
- 5 個鮮為人知 GNU 偵錯程式(GDB)技巧
- Python:鮮為人知的功能特性(上)Python
- Python:鮮為人知的功能特性(下)Python
- 鮮為人知的python位運算Python
- 有趣且鮮為人知的 Python “特性”Python
- 5個 Google Guava 鮮為人知的特性GoGuava
- 10個鮮為人知的WordPress函式函式
- Google鮮為人知的14項服務Go
- 庫克的14件鮮為人知的軼事
- 5個鮮為人知Java集合特性Java
- 軟體開發中的10大不為人知的真相
- 一份鮮為人知的Python特性Python
- 11 個鮮為人知的 Linux 命令(1)Linux
- 10 個鮮為人知的 Linux 命令(5)Linux
- 10 個鮮為人知的 Linux 命令(2)Linux
- 10 個鮮為人知的 Linux 命令(3)Linux
- 10 個鮮為人知的 Linux 命令(4)Linux
- 十個鮮為人知的Linux 命令(三)Linux
- 十個鮮為人知的Linux 命令(二)Linux
- C語言有哪些鮮為人知的特性?C語言
- 鮮為人知的Windows XP最佳化(轉)Windows
- 中老年人群鮮為人知的六個性行為統計資料
- 推薦六個鮮為人知的 Composer 命令
- 鮮為人知的軟體專案管理原則專案管理
- 十個鮮為人知的Linux命令 - Part 5Linux