[Cursor-Guide]大型程式碼庫
學習在Cursor中管理大型程式碼庫的專業技巧。探索如何高效且自信地瀏覽、理解並為複雜專案做出貢獻。
[Cursor-Guide]大型程式碼庫
原始連結: 原始連結
如何在Cursor中處理大型程式碼庫
與小型專案相比,處理大型程式碼庫會帶來一系列新的挑戰。基於我們擴展Cursor自身程式碼庫的經驗,以及客戶管理大型程式碼庫的見解,我們發現了一些應對複雜性的有效模式。
本指南將介紹我們在大型程式碼庫中發現的一些實用技巧。
使用Chat快速熟悉陌生程式碼
瀏覽大型程式碼庫(特別是對您來說是新專案)可能具有挑戰性。您通常需要通過grep、搜尋和點擊來尋找程式碼庫中的特定部分。透過Chat,您可以開始提問以找到所需內容,並獲得其工作原理的詳細解釋。
這裡我們獲取幫助來查找Cursor中程式碼庫索引的實現細節,甚至要求提供一些範例以便更容易理解。
為了讓Cursor更深入地理解您的程式碼庫結構,請確保從設定中啟用包含專案結構以獲得更好的性能。
為特定領域知識編寫規則
如果您要讓新協作者加入您的程式碼庫,您會提供什麼上下文以確保他們能夠開始做出有意義的貢獻?
這個問題的答案對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-sonnet
、gemini-2.5-pro
或o3
這樣的思考模型,因為它們可以理解變更的意圖並更好地綜合出計劃。
從這裡開始,您可以在開始實施之前,在Cursor的幫助下迭代地制定計劃。
選擇合適的工具
有效使用Cursor的最重要技能之一是為工作選擇合適的工具。考慮您要完成什麼,並選擇能讓您保持流動狀態的方法。
每種工具都有其最佳適用場景:
- Tab是您進行快速編輯的首選,當您想要掌握控制權時
- Cmd K在您需要對代碼的特定部分進行專注變更時表現出色
- Chat非常適合那些需要Cursor理解更廣泛上下文的大型變更
當您使用Chat模式(可能感覺有點慢但非常強大)時,通過提供良好的上下文來幫助它幫助您。使用@files指向您想要模仿的類似代碼,或使用@folder讓它更好地理解您的專案結構。不要害怕將大型變更分解為較小的部分 - 開始新的聊天有助於保持專注和效率。