快轉到主要內容

AI 寫程式 與 Vibe Coding 雜感

本篇幾乎為「目前」我的「觀點」而非「事實」,是這一陣子用 Github Copilot, Cursor, Windsurf, Claude Code 搭配原本就有的 Claude.ai 與 ChatGPT 的感想,所以

  • 不特別說「我覺得」了。自己知道就好
  • 這領域變動很快,所以不特別說「目前」了

先說最重要的:用 AI 寫程式是「需要學習」、「需要訓練」的技能

AI coding 已經夠強力到能造成影響,但還不夠美好到讓我們躺平。所以如同以前新學個語言或技能,把手弄髒才能逐漸體會眉眉角角,進而幫助自己。

可惜我還沒辦法歸納出有條理的 best practice ,所以接下來是很條列的雜感


Vibe Coding 不適合每個場景:Vibe coding 是指「全盤接受 AI 生成、不讀 diff、對 bug/error 直接丟給 AI 不多做解釋」的「隨性寫程式」。 這是 Andrej Karpathy 發明的詞,但好玩的是原本他說 “It’s not too bad for throwaway weekend projects” ,但大家(包括我)往各種不同的範圍跟意見去延伸了。

不,AI Coding ≠ Vibe Coding。我還是老摳摳,有時仍會去看 AI 怎麼寫,老狗學新把戲但無法 Vibe

在最近的一個從無到有的前端 side project,體感 AI 「只」幫忙 70%,我花 30% 心力去 review 跟改動

對於程式邏輯還行,但 Javascript 語法很不熟的我,AI coding 很有幫助。或許這意味著,程式語言的「概念」在未來會越來越比「文法」重要

承上,UX/設計會更顯得重要;前端工程師只要有 sense 應該不會被淘汰

WHAT 跟 HOW:告訴 AI 要做什麼跟告訴 AI 怎麼做是兩種不同的策略。大部分的時候 WHAT 像是個規格書就夠了。但有時 AI 鬼打牆自己還是會用 HOW 的方式去想(再最後乾脆自己寫)

如果一開始就能把大架構跟 build 一起確定下來會節省些時間。在某個前端計劃,一開始我假設把 repo 所有檔案 as-is 放到 hosting server(只是個週末計劃,是吧),後來逐漸變大才改成我沒有用過的 Vite 當 builder。 這種改動對於沒很多前端經驗的我,讓 AI 去改會花比較多時間

適時把 AI 越生越大的檔案請 AI 分模組、分檔,會對未來有幫助

Windsurf 在讀懂檔案找 context 似乎是兩百行兩百行掃的,而 Cursor 似乎還有用到搜尋的技巧。無論如何,在 prompt 裡直接 @ 檔案/function 也會有幫助

Windsurf 比較便宜是個假象,雖然 credit 數 1500 比 Cursor 500 多,每月 $15 比 Cursor $20 便宜,但一次 Agent 操作就可能會用掉很多 Flow Acion credits (例如一次兩百行讀檔、一次寫檔、一次操作等等)

命名很重要。兩個模組名字太相像的話可能會讓 AI 混淆(例如這也 grid 那也 grid)。就算命名 AI 是做的,通常也是從我們的 prompt 來的

一些 library 或 builder 要指定 major 版本比較好,AI 一開始的解法不見得是安裝的版本的解法。所以連帶風格、框架、版本等,利用 editor 的功能可能會有用

  • Cursor 有 Project Rules (.cursor/rules/) 跟 User Rules 可設定
  • Windsurf 有 Local rules (.windsurfrules) 跟 Global rules 可設定

有時候 inline 先寫 comment 然後靠 auto complete 就夠用,不需要每個都 Agent

git add / git commit 是救命稻草,尤其 Cursor 有時候 undo AI 的實作會破壞檔案,不知道是不是 vim plugin 辨認文字改動有問題


關於寫程式(撇開為了存錢的這一部分),初衷、也是最好玩的部分,就是創造!無論 AI 能否一鍵幫我完成(現在不能),能快速吃自己的狗食就是舒爽!

從以前 BASICA 寫 2A2B、QuickBasic 寫俄羅斯方塊、Visual Basic 寫臉譜方塊,然後出社會就逐漸逐漸是為了別人寫程式了。 原本上班消耗所剩餘的心力,在現今 AI Coding 的輔助下,似乎又能「為自己寫程式」這件事情減輕負擔了。對於老狗也是有好處的!


若您覺得有趣, 請 追蹤我的Facebook 或  Linkedin, 讓你獲得更多資訊!