型別檢查與程式碼檢查:免費抓出的錯誤
有兩種工具幾乎不需要你費什麼力氣,就能抓出一整類錯誤:
- 型別檢查(TypeScript、
mypy等)能抓出"你把一個 string 傳給了期望 number 的地方"以及"這個值可能是 undefined"。AI 特別喜歡忽略那些被型別設計成不可能出現的邊界情況。 - 程式碼檢查(Linting)(ESLint、Ruff 等)能抓出未使用的變數、不可達程式碼以及風格漂移。它能防止一個被 AI 反覆改動的程式碼庫慢慢糊成一團。
儘早把這些設定好,並告訴 AI 遵守它們:"執行型別檢查器和 linter,並在你認為做完之前修復它們報出的所有問題。" 把一次乾淨的型別檢查當作"完成"定義的一部分。
不過,要警惕那些偷懶的逃生口。當型別檢查器抱怨時,真正正確的修復是去處理它發現的那個情況——那個 undefined 值、那個錯誤的型別。而快速的修復,是用 // @ts-ignore、any 或者 # type: ignore 註釋把抱怨壓下去,AI 會不停地伸手去抓這些,因為它們能讓紅字消失。它們也恰恰在檢查本想幫忙的那個位置,把檢查變得毫無價值。如果你在 diff 裡看到一條抑制(suppression)註釋出現,把它當成一個問題,而不是一個解決方案:"這為什麼是必要的?去修底層的型別,而不是忽略它。"