The Clean Coder 無瑕的程式碼 番外篇 Chapter 4 寫程式 觀後感 勝兵先勝而後求戰
第四章作者描寫各種寫程式的「情境」,寫程式的技巧作者寫在《Clean Code》其他書籍之中。作者根據自己數十年寫程式的經驗,指出何種情境不適合寫程式,提供一些扭轉不利情境的方法。「勝兵先勝而後求戰」專業軟體開發人員要保持自己在良好狀態,才動手寫程式。
作者認為要精熟掌握每項技能,關鍵是要具備「信心」和「出錯感知」。
寫程式是一件非常困難的事情,疲勞或是心煩意亂的時候不可以寫程式。
流態區 (The Flow Zone)
這部分內容可參考《北斗神拳》的奧義「無想轉生」,當進入「無想轉生」狀態的時候會用心眼加反射動作處理人事物。
作者不支持進入「無想轉生」狀態寫程式,寫程式的時候進入冥想狀態會很「爽」,實際上會常常寫出有問題的程式。
作者發現自己進入「無想轉生」狀態的時候,會立刻離開座位,停止寫程式。
另一種解決方法是結對程式設計 (pair programming),兩個人一起開發程式,一個人就不會進入「無想轉生」狀態。
「練習」的情況不同,作者反而認為練習寫程式的時候適合進入「無想轉生」狀態。
音樂
有的人喜歡一邊寫程式一邊聽音樂,作者反對寫程式的時候聽音樂,聽音樂會讓人不夠專心。
中斷
正當專心寫程式的時候,被外力中途打斷是困擾的事情,重新就位之後已經無法回到原來的專心狀態。
作者認為結對程式設計 (pair programming) 與 TDD 測試驅動開發,可以減輕中斷的干擾。
阻塞
有時候真的都寫不出任何程式碼,陷入阻塞狀態。
作者建議停止寫程式,做其他的事情。 作者超愛結對程式設計 (pair programming),認為結對程式設計 (pair programming) 也能克服阻塞狀態。
創意輸入
「創意輸出」來自於「創意輸入」,平日作者並不是只有看寫程式的書,還有涉獵各種不同領域的書籍。
除錯
作者大讚 TDD 測試驅動開發,以前沒有 TDD 的時候,除錯時間會非常久! 有 TDD 之後,節省了很多除錯時間。
保持節奏
作者認為寫程式如同馬拉松長跑,而不是百米短跑。寫程式並不是一直努力加速衝刺。
要知道何時必須離開停止寫程式,依據作者自己的寫作經驗,當陷入卡關的情況,有時在開車或是洗澡的時候,能夠「靈光一閃」找到解決的方法。
進度延遲
每一位軟體程式設計師都會出現進度延遲的情況,預估時間的時候要分樂觀預估、常態預估與悲觀預估,每天修正進度數字。
避免把預估與期望混淆,盲目衝刺只會讓情況更糟!
超時加班
作者認為加班必須滿足三個條件
1.個人能擠出時間
2.短期加班,最多加班兩周
3.你的老闆要有後備方案,以防加班失敗。
交付失敗
最可怕的情況是軟體工程師覺得自己寫完了,實際上並沒有真正完成。
定義「完成」
最好的方法是業務與測試人員建立一套自動化驗收測試。
幫助
樂於幫助別人,也要樂於接受別人幫助。
輔導
作者預告會有一個章節介紹如何輔導新人。
補充
結對程式設計 (pair programming) 就像是桌球雙打,我相信作者所言結對程式設計 (pair programming)能夠解決很多問題,然而好的合作夥伴難尋,人的問題最難!
留言
張貼留言