Heinz Kabutz
IDE 的演進#
- 1980 年代:程式設計環境不過是美化過的文字編輯器。語法高亮是奢侈品,程式碼排版靠外部工具,除錯器也是獨立的程式,需要用一堆神秘的按鍵操作來逐步執行程式碼
- 1990 年代:公司開始意識到為程式設計師提供更好工具的潛在收益。**IDE(Integrated Development Environment)**誕生,將編輯、編譯、除錯、美化列印等功能整合在一起。同時,選單和滑鼠的普及讓開發者不再需要記憶複雜的按鍵組合
- 21 世紀:IDE 功能極為豐富,免費提供以爭奪市場。自動化重構(如 Extract Method)、靜態分析、程式碼風格規則等功能已成為標準配備
善用 IDE 的功能#
自動化重構#
作者最喜歡的功能是 Extract Method——選取一段程式碼,重構工具會自動找出需要傳入的參數、建立方法,甚至偵測其他可被同一方法替換的程式碼片段。
風格規則檢查#
IDE 可以在公司內部強制執行程式碼風格規則。例如在 Java 中,有些程式設計師認為所有參數都應標記 final(作者認為是浪費時間),但如果這是團隊規則,IDE 會對任何非 final 的參數發出警告。風格規則也可以用來發現潛在的 bug,例如比較自動裝箱的物件時使用 == 而非 equals()。
投入時間學習#
現代 IDE 不需要太多投入就能上手,但這也可能導致我們永遠停留在最基礎的用法。
鍵盤快捷鍵#
學習 IDE 的第一步是記住鍵盤快捷鍵。例如在打字時按下 Ctrl+Shift+I 來 inline 一個變數,不會中斷你的心流;而用滑鼠去找選單則會打斷思路。這些中斷會導致不必要的上下文切換(context switching),大幅降低生產力。同樣的道理也適用於打字——投入時間學習盲打(touch typing),前期的學習投資會帶來長期的回報。
Unix 串流工具#
身為程式設計師,我們還有久經考驗的 Unix 串流工具可以幫助我們操作程式碼。例如在 code review 時發現程式設計師為許多類別取了相同的名稱,可以輕鬆用 find、sed、sort、uniq 和 grep 等工具來找出這些問題。
我們期待水電工來家裡修水管時能熟練使用他的噴燈。身為程式設計師,我們也應該花時間研究如何更有效地使用我們的 IDE。