我為什麼不再用 Antigravity,而改在終端機裡開發


大家端午快樂,這週分享一下我目前的主力開發工具~

開發工具的使用歷程

在 AI 時代前,我都是使用 PhpStorm。PHPStorm 確實順手——跳到函式定義、儲存時自動格式化和檢查,這些功能讓開發效率提升不少。

進入 AI 時代後,我用了 Cursor 好幾個月。自動補全和聊天介面加速了不少開發流程。但用了一段時間,我發現自己還是需要理解程式碼的能力,最後回到 PHPStorm 搭配 Claude Code 的組合。

後來也試過 Google 的 Antigravity。除了免費額度以外,用起來跟 VS Code 差不多。直到某天我打開系統監控,發現 Antigravity 的記憶體佔用竟然到了 40 幾 GB。

40 幾 GB,只為了一個程式碼編輯器。

程式碼視窗還重要嗎?

這讓我開始重新思考一個問題:傳統 IDE 的設計核心是「程式碼」。整個介面以程式碼編輯器為主體,側邊欄、終端機、除錯面板都是輔助角色。

但我現在的開發流程已經變了。大部分時間我在跟 Claude Code 對話,描述需求、確認方向、審查它產出的結果。真正需要自己打開檔案逐行閱讀的時候,一天可能不到三成。

既然主要的工作模式是「對話 + 指令」,那為什麼不直接在終端機裡做?

改用 Warp 之後的工作流程

我選了 Warp 作為主力終端機。用了幾週下來,整理出三個讓我回不去 IDE 的原因。

多專案管理靠分頁就搞定

我同時在跑好幾個專案。在 Warp 裡,每個專案就是一個 Tab。早上開工時,Warp 會把我開過的專案分頁都暫存起來,只要一啟動時,就是所有我目前手邊正在進行中的專案,每個 Tab 直接切到對應的專案目錄。要切換專案,Command + 數字鍵就到了。

不用像以前那樣開好幾個 IDE 視窗,每個視窗吃掉一大塊記憶體。

視窗分割讓對話和操作並行

Command + D 就能分割畫面。我常用的配置是左邊跑 Claude Code,右邊開一個終端機執行指令。如果需要同時監看 log 或跑測試,再切一個小視窗出來。

這跟 IDE 裡開 Terminal 的體驗完全不同。在 IDE 裡,終端機是被塞在底部的附屬品;在 Warp 裡,終端機就是主角,每個分割視窗都是平等的。我可以根據當下的需求,自由調整每個視窗的比例和用途。

檔案操作也不缺

真的需要瀏覽檔案結構的時候,Warp 左側也有目錄面板,點選就能開啟檔案。雖然不像 IDE 那樣有語法高亮和智慧提示,但對於偶爾需要確認檔案內容的場景來說夠用了。

這套做法適合誰

我不會說每個開發者都該丟掉 IDE。如果你的工作需要大量手寫程式碼、頻繁使用重構工具、依賴型別檢查和自動補全,IDE 依然是最好的選擇。

但如果你跟我一樣,日常開發有一大半時間在跟 AI 協作——描述需求、審查產出、下指令執行——那 IDE 裡那個大大的程式碼視窗,可能真的不是你最需要的東西。

Warp 的介面設計剛好反映了這個轉變:它以 AI 對話為主體,終端機操作為輔助。當你的工作流程本來就是「對話 + 指令」,這樣的配置比 IDE 順手得多。

-

如果你希望可以看到更多關於 AI 開發的實用工具跟做法,可以回信傳一個 🛶 給我讓我知道!

WordPress 開發日常

Read more from WordPress 開發日常

前陣子,我教會一位朋友使用 Claude Code。他完全不會寫程式,連終端機是什麼都沒聽過。但他有一個很清楚的產品想法,一直找不到工程師幫他做。 兩週後,他把那個產品完整地實作出來了。 不是原型、不是 wireframe,是一個可以實際運作的產品。他全程沒有寫過任何一行程式碼——他只是用中文描述他要什麼功能,Claude Code 就幫他把程式寫出來、跑起來、除完錯。 你可能會想:那它跟 ChatGPT 到底差在哪? 一、你說中文,它寫程式 大部分人聽到「Claude Code」就先退了一步。Code,程式碼,那不是工程師的事嗎? 試試看跟它說這句話:「幫我把這個資料夾裡所有 PDF 的檔名,整理成一份清單。」 它會自己寫一段程式碼、跑完、把清單生出來。你完全不需要看懂那段程式碼。同樣的事在 ChatGPT 上做,它會把程式碼貼給你看,然後你得自己想辦法找地方執行。 你需要學的不是程式語言,而是怎麼把需求講清楚。但光是能下指令還不夠——如果它每次只能做一件事就停下來等你,那跟比較聰明的 Siri 也沒什麼兩樣。 二、它不是聊天機器人,它是 Agent 用過 ChatGPT 或...

如果你有在使用 AI 開發 WordPress 外掛,並且要設計一些自訂的後台管理介面時,一定遇過資料送出時無法正確儲存,或是儲存後被導向到奇怪的頁面。 根據我的經驗,這十之八九是 Nonce 的問題,AI 在處理 Nonce 這一塊常常會出錯,為了讓 AI 更好地理解該怎麼處理 Nonce,這篇文章就來分享 Nonce 的作用,以及如何讓 AI 不要再犯這種錯。 Nonce 是為了擋 CSRF 而生的 所謂的 Nonce,最主要的功能是要防止跨站請求偽造(也就是俗稱的 CSRF)。 CSRF 主要的攻擊方式,是攻擊者誘導已經登入受害者的瀏覽器,自動發送請求到你的網站,也就是說,攻擊者不需要入侵你的網站,只要你的瀏覽器在登入狀態下點擊了惡意網址,攻擊就會開始。 舉個例子: 站長登入了某個 WordPress 網站的後台沒登出,繼續開著分頁 站長切換到另一個由惡意攻擊者準備好的頁面,這個惡意頁面藏了一段惡意程式 程式裡面的連結會指向站長 WordPress 後台 瀏覽器在送出這個請求時,會自動帶上站長已經登入的 Cookie(因為原本分頁沒關) 站長踩到這個惡意網址、讀到那段...

這禮拜的主題比較硬一點,但如果你有在用 AI 開發外掛然後想讓自己的 Antigravity 或是 Claude Code 讀到網站的內容像是查訂單,這篇教學就非常適合貼給 AI 請它幫你開發~ 話說之前做 DWP 的 LINE 聊天機器人查 WooCommerce 訂單,會員可以直接在 LINE 裡問訂單狀態、查活動,背後是 OpenAI 的 Function Call 在跑。整個架子是自己刻的——每一個會員問句能對應到的後端動作,要自己定義一份 JSON Schema 告訴模型「這個工具吃什麼參數、回什麼結構」,再寫一個 dispatcher 收到 model 的 tool_calls 之後手動 routing 到對應的 WP 函式,回傳值也要自己塞回對話 context。 換一家模型供應商就要重做一次 schema 格式(OpenAI、Anthropic、Gemini 的欄位名稱都不一樣),漏處理一個錯誤路徑 LINE 那邊就吐出一堆奇怪的字。一份「查訂單狀態」的能力,被綁死在這個 LINE Bot 專案裡,搬不到別處用。 直到 WordPress 6.9 把...