從 Github Copilot 到 Cursor,我一直在等待可以用嘴巴叫AI把事情搞定的一天,今天的 Windsurf 確實讓我想套一句安成宰的話:「完成度很高!」

我請他做的事情大致如下(有數字編號的就是我輸入的命令):
[1] 幫我做一個踩地雷的遊戲用HTML -> 這樣最基本的踩地雷遊戲就出來了
但因為我很久沒玩踩地雷了,所以不大會玩,一測試就踩到了地雷,因此我的下一個指令是
[2] 我想要新增一個熱鍵按下去之後可以顯示所有的地雷狀態類似作弊模式
可以看到地雷了,但這樣很不精緻,因此:
[3] 按下X他會顯示3秒鐘,然後就自動隱藏
但只有按大寫X才有用,因此我又跟它說:
[4] 這個X要不分大小寫都會顯示
[5] 我覺得這個介面長得不夠好看,請幫我改得更漂亮一點
[6] 我想要用45度,有點類似3D的感覺來呈現整個地圖
[7] 把所有的註解都改成英文的
[8] 請幫我的JS加上單元測試,確保我的邏輯是正確的 ->他產生了11個測項,是有水準的測項。
它寫完測項後,有回報說:測試覆蓋了所有主要功能:
* 遊戲初始化
* 遊戲機制
* 勝利/失敗條件
* 作弊模式
* 計時器功能
[9] 我裝好了 npm ,但執行起來好像失敗 -> 然後他修正了 unit test,然後就執行成功了
[10] 檔名叫做script.js好像太籠統了,換個比較專業的名字 -> 會舉一反三,請它改 script.js,它會說那 unit test 的檔名也要跟著改一下
但這改完後,不知為何其實地圖就出不來了,有 bug,所以開始進行 AI debug
[11] 畫面有問題,整個地圖都不見了,剩下一條斜線
[12] 我還是沒有看到任何地圖,只有看到一條線
[13] 還是沒有畫面, 你是不是在做單元測試的時候改壞了? —> 我覺得這句話他有聽進去,他認真檢查加單元測試時改了什麼…
[14] 還是沒有看到地圖 -> 這次,他終於找到問題了,然後修完後就都正常了
[15] 確認一下單元測試是不是都正常
其中比較特別的是後半段:
1. 單元測試寫完,可以在 IDE 中運行一個小 terminal,然後 Windsurf 會看有沒有錯誤,有的話他會修正
1. 例如測試環境沒有 window.alert 跟 console.error(),所以他把原本的 windows.alert 換成自定義的消息系統了
2. 請他解完看不到地圖的bug後,重跑 unit test 有好幾個失敗,他會自動修正
2. Debug
1. 有點像具潛力的 junior software engineer,只要告訴他沒有做對,他會繼續去查找可能有問題的原因,直到最後全部都修正完畢為止
總結:
目前實測,這種幾百行規模的程式碼,我覺得它寫的蠻好的,而且會舉一反三,後來雖然有 bug,但跟他講他會找到 root cause,孺子可教也…
我相信在不久的將來,很多系統的週邊功能都會用AI來開發,Plugin Framework 會變的很重要,就像 Chrome 一樣,核心瀏覽器短時間還無法全部單純用 AI 打造出來,但各種 extension / plugin,因為規模小,使用情境也單純,應該是很有機會請 AI 直接做出來。
這個假日來挑戰五千行等級的專案看看
*我都是用 Mac 內建的語音輸入。


