軟體品質:掛在嘴邊 vs 放在心上
初讀此書常引發驚慌:「我寫的程式怎麼有那麼多問題?」別難過,作者只是比你早幾年、多幾次驚慌。花 1-2 小時閱讀,獲益匪淺——這是前 N-1 位讀者的建議。
「真正程式設計師」的十大迷思
- 沒有進度表,只有討好領導才有。
- 不寫使用手冊,用戶自己猜。
- 幾乎不寫註解,難寫就難讀。
- 不畫流程圖,那是原始人幹的事。
- 不看參考手冊,新手膽小鬼才看。
- 不寫文檔,看不懂程式的笨蛋才用。
- 認為比用戶更懂用戶需求。
- 不接受團隊開發,除非自己是頭頭。
- 程式第一次不會正確,但願意 30 小時不眠不休改錯。
- 不朝九晚五,若上午 9 點在工作,表示從昨晚幹到現在。
符合越多越被視為「高手」。作者曾深信不疑,結果慘痛失敗。
作者覺醒之路
- 十年累計十萬行 C++,軟體獲獎、銷售不錯,自認「老手/高手」。
- 請教真正軟體專家,幾十分鐘指出多處重大設計錯誤,軟體如「紙糊衣服」,一年心血歸零,公司倒閉。
- 面壁半年,重修軟體設計基礎,補足「內功」。
- 微軟面試寫
strcpy,從編程風格、錯誤處理、演算法複雜度三面考查,半小時修改數次仍不滿意。
- 反省心得放網路引發共鳴,與華為、上海貝爾、中興等企業廣泛交流,共識:提高品質與生產力是核心。
國內程式設計師現狀
- 大學教育缺乏高品質程式設計觀念,教師學生鮮少關注品質。
- 企業雖多碩博士,但「先天不足」,難望質變。
- 面試百名程式員,品質合格率約 10%;
if 敘述寫對者極少,指標/記憶體管理一知半解。
- 實測:14 位碩士新進員工,全員不及格,半數零分。競對同樣慘敗。
重新定義「老手」與「高手」
定義 1:能長期穩定寫出高品質程式的程式員,稱為編程老手。
定義 2:能長期穩定寫出高難度、高品質程式的程式員,稱為編程高手。
據此,作者「既非高手也非老手」。
本書閱讀指南
- 先做附錄 B 試題(不看答案),嚴格打分。
<60 分:習慣問題,可救,決心改習慣第二次必及格。
≥60 分:基礎不錯,虛心精進。
≥85 分:有義務為團隊做培訓。
滿分無提示:收我為徒。
- 正文第 1-6 章:編程風格,細節多、難度低,團隊開發須風格一致。
- 第 7-11 章:專題論述,技術深度高,需主動思考。特別是第 7 章記憶體管理,「讀懂≠會用」,須反覆練習。
- 參考文獻皆為經典名著,建議深讀。
- 品質過關後,進階學習 CMMI 規範,提升綜合水平。
版權聲明
- 可任意拷貝、修改,保留作者及單位。
- 未經授權不得出版/大量印發。
- 競對員工請勿公開使用,避免糾紛。