處理大型程式碼庫與在小型專案上工作相比,會帶來一組全然不同的挑戰。結合我們擴展 Cursor 自身程式碼庫的經驗,以及客戶在管理龐大程式碼庫時的洞見,我們歸納出一些應對日益複雜性的實用模式。 在本指南中,我們會帶你走過一些我們認為對大型程式碼庫特別有幫助的技巧。

用 Chat 快速上手不熟悉的程式碼

瀏覽大型程式碼庫,尤其是對你來說全新的時候,確實不容易。你常常得用 grep、搜尋、到處點來找到你要的特定程式碼區塊。用 Chat,你可以直接發問來鎖定目標,還能拿到它如何運作的詳細解說。 這裡我們在尋求協助,找出 Cursor 中程式碼庫索引的實作細節,甚至還請它給一些範例,讓理解更直覺。

為特定領域知識撰寫規則

如果要讓一位新夥伴加入你的程式碼庫,你會提供什麼脈絡,才能讓他們立刻開始做出有意義的貢獻? 你對這個問題的回答,多半也是有助於 Cursor 更了解你專案的寶貴資訊。每個組織或專案都存在未必能在文件中完整呈現的隱性知識。善用規則是確保 Cursor 掌握全貌的最佳做法。 例如,當你撰寫如何實作新功能或服務的指引時,不妨另外寫一條簡短的規則,把它記錄下來以備未來參考。
樣板
---
description: 新增一個 VSCode 前端服務
---

1. **介面定義:**
   - 使用 `createDecorator` 定義新的服務介面,並確保包含 `_serviceBrand` 以避免錯誤。

2. **服務實作:**
   - 在新的 TypeScript 檔案中實作該服務,繼承 `Disposable`,並用 `registerSingleton` 註冊為單例。

3. **服務貢獻:**
   - 建立一個 contribution 檔案以匯入並載入該服務,並在主入口註冊它。

4. **上下文整合:**
   - 更新 context,將新服務納入其中,以便整個應用程式都能存取。
如果有常見的格式樣式想讓 Cursor 一直遵循,可以考慮依據 glob 模式自動套用規則。
格式
---
globs: *.ts
---
- 使用 bun 作為套件管理器。腳本請參見 [package.json](mdc:backend/reddit-eval-tool/package.json)
- 檔名使用 kebab-case
- 函式與變數名稱使用 camelCase
- 硬編碼常數使用 UPPERCASE_SNAKE_CASE
- 優先使用 `function foo()`,而非 `const foo = () =>`
- 使用 `Array<T>`,不要使用 `T[]`
- 使用具名匯出而非預設匯出,例如(`export const variable ...``export function`

緊貼規劃制定流程

對於較大的變更,多花點心思擬定精準且範圍明確的規劃,可以大幅提升 Cursor 的輸出品質。 如果你發現同一個提示詞試了幾種不同變化後還是得不到想要的結果,試著跳出來,從零開始寫一份更詳細的規劃,就像要幫同事寫一份 PRD 一樣。很多時候,難的是先搞清楚應該改什麼,這點其實更適合人來做。有了正確的指示,我們就能把部分實作交給 Cursor。 用 AI 強化規劃制定流程的一種方式是使用 Ask 模式。要建立規劃時,在 Cursor 開啟 Ask 模式,將你從專案管理系統、內部文件或零散想法中掌握的所有脈絡都丟進去。想想在程式碼庫裡有哪些檔案與相依是你已經確定要納入的。可能是某個包含你想整合之程式碼片段的檔案,或甚至是一個整個資料夾。 以下是一個範例提示:
規劃提示
- 擬定一個建立新功能的計畫(就像 @existingfeature.ts 那樣)
- 如果有不清楚的地方,最多問我 3 個問題
- 記得搜尋整個程式碼庫

@Past Chats(我先前的探索性提示)

這裡有更多來自[專案管理工具]的背景:
[貼上的票單描述]
我們請模型先透過向人提問、參考先前的探索性提示以及 ticket 描述,來建立方案並彙整脈絡。建議使用像 claude-3.7-sonnetgemini-2.5-proo3 這類思考型模型,因為它們能理解變更意圖,並更好地綜整出可行的方案。 在此基礎上,開始實作前,你可以先在 Cursor 的協助下反覆打磨你的計畫。

為任務選對工具

把 Cursor 用好用滿的一大關鍵,就是為手上的任務選對工具。先想清楚你要達成什麼,再挑能讓你維持心流的做法。
ToolUse caseStrengthLimitation
Tab快速、手動修改完整掌控、速度快單一檔案
Inline Edit在單一檔內的區域修改聚焦編修單一檔案
Chat較大、跨檔案修改自動彙整脈絡、可做深度編修較慢、脈絡重
每個工具都有最擅長的情境:
  • Tab 是你要做快速修改、自己掌握方向時的首選
  • Inline Edit 在你需要對特定程式碼區段做聚焦變更時最發揮
  • Chat 很適合那些需要 Cursor 理解更廣泛脈絡的較大修改
用 Chat 模式時(可能感覺稍慢,但超強),提供足夠的脈絡能讓它更給力。用 @files 指向你想仿效的相似程式碼,或用 @folder 讓它更了解你的專案結構。此外,把大修改拆成小步驟不用怕——開新的聊天有助於保持聚焦並提升效率。

重點整理

  • 縮小變更範圍,不要一次做太多
  • 能提供時就加上相關脈絡
  • 依各自最擅長的場景使用 Chat、Inline Edit 和 Tab
  • 多開新對話
  • Ask mode 規劃,用 Agent mode 實作