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版第三章 觀後感 喧賓奪主 ,反派實力過強

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

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