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)能夠解決很多問題,然而好的合作夥伴難尋,人的問題最難!



留言

這個網誌中的熱門文章

異世界NTR web版第三章 觀後感 喧賓奪主 ,反派實力過強

泛而不精的我被逐出了勇者隊伍 web第三章 觀後感 菲莉真能打; 露娜超爽der

持有縮小技能的D級冒險者,與聖女結婚並加入勇者團隊 漫畫 01-04 觀後感 大我與小我