[Cursor-Guide]大型程式碼庫

作者:Cursor
平台:本地文件
日期:2025-05-31

學習在Cursor中管理大型程式碼庫的專業技巧。探索如何高效且自信地瀏覽、理解並為複雜專案做出貢獻。

大型程式碼庫cursor程式碼管理開發者工具軟體開發

[Cursor-Guide]大型程式碼庫

原始連結: 原始連結

如何在Cursor中處理大型程式碼庫

與小型專案相比,處理大型程式碼庫會帶來一系列新的挑戰。基於我們擴展Cursor自身程式碼庫的經驗,以及客戶管理大型程式碼庫的見解,我們發現了一些應對複雜性的有效模式。

本指南將介紹我們在大型程式碼庫中發現的一些實用技巧。

largeCodebases-1

使用Chat快速熟悉陌生程式碼

瀏覽大型程式碼庫(特別是對您來說是新專案)可能具有挑戰性。您通常需要通過grep、搜尋和點擊來尋找程式碼庫中的特定部分。透過Chat,您可以開始提問以找到所需內容,並獲得其工作原理的詳細解釋。

這裡我們獲取幫助來查找Cursor中程式碼庫索引的實現細節,甚至要求提供一些範例以便更容易理解。

為了讓Cursor更深入地理解您的程式碼庫結構,請確保從設定中啟用包含專案結構以獲得更好的性能。

project-structure

為特定領域知識編寫規則

如果您要讓新協作者加入您的程式碼庫,您會提供什麼上下文以確保他們能夠開始做出有意義的貢獻?

這個問題的答案對Cursor來說也可能是寶貴的資訊。對於每個組織或專案,都存在可能未完全記錄在文件中的潛在知識。有效使用規則是確保Cursor全面理解的最佳方式。

例如,如果您正在編寫如何實現新功能或服務的說明,考慮編寫一個簡短的規則以供後續參考。

樣板

---

description: 新增一個VSCode前端服務

---

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

2. **服務實現:**
   - 在新的TypeScript文件中實現服務,擴展`Disposable`,並使用`registerSingleton`將其註冊為單例。

3. **服務貢獻:**
   - 建立一個貢獻文件來導入和加載服務,並在主入口點註冊它。

4. **上下文整合:**
   - 更新上下文以包含新服務,允許在整個應用程式中訪問。

如果有您希望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個問題)
- 確保搜尋程式碼庫

@過去的聊天(我之前的探索提示)

這裡是來自[專案管理工具]的更多上下文:

[貼上的票證描述]

我們要求模型創建一個計劃,並通過向人類提問來收集上下文,參考任何早期的探索提示以及票證描述。推薦使用像claude-3.7-sonnetgemini-2.5-proo3這樣的思考模型,因為它們可以理解變更的意圖並更好地綜合出計劃。

從這裡開始,您可以在開始實施之前,在Cursor的幫助下迭代地制定計劃。

largeCodebases-2

選擇合適的工具

有效使用Cursor的最重要技能之一是為工作選擇合適的工具。考慮您要完成什麼,並選擇能讓您保持流動狀態的方法。

工具使用案例優勢限制
Tab快速、手動變更完全控制,快速單一文件
Cmd K單一文件中的範圍變更專注編輯單一文件
Chat較大的、多文件變更自動收集上下文,深度編輯較慢,上下文密集

每種工具都有其最佳適用場景:

  • Tab是您進行快速編輯的首選,當您想要掌握控制權時
  • Cmd K在您需要對代碼的特定部分進行專注變更時表現出色
  • Chat非常適合那些需要Cursor理解更廣泛上下文的大型變更

當您使用Chat模式(可能感覺有點慢但非常強大)時,通過提供良好的上下文來幫助它幫助您。使用@files指向您想要模仿的類似代碼,或使用@folder讓它更好地理解您的專案結構。不要害怕將大型變更分解為較小的部分 - 開始新的聊天有助於保持專注和效率。

要點

  • 縮小變更範圍,不要一次嘗試做太多
  • 盡可能包含相關上下文
  • 根據各自優勢使用Chat、Cmd K和Tab
  • 經常開啟新的聊天
  • 使用Ask模式進行計劃,使用Agent模式進行實施

系列文章索引