处理大型代码库的实践指南
相较于小型项目,处理大型代码库会带来一系列全新的挑战。基于我们扩展 Cursor 自身代码库的经验,以及服务管理海量代码库客户所获得的洞见,我们总结出了一些应对复杂场景的有效模式。
本指南将逐步讲解我们在处理大型代码库时发现的实用技巧。
使用chat 功能快速理解陌生代码
在庞大的代码库中导航(尤其是面对新接触的代码时)可能充满挑战。开发者通常需要反复使用 grep
命令、全局搜索和点击跳转来定位目标代码片段。通过 聊天 功能,您可以直接提问来快速定位所需代码,并获取其工作原理的详细解释。
以下示例展示了如何通过chat 功能快速获取 Cursor 代码库索引机制的实现细节,甚至要求生成代码示例来辅助理解。
性能优化提示: 为增强 Cursor 对代码库结构的理解能力,建议在 设置 中启用 包含项目结构(Include Project Structure)选项以提升分析效果。
编写领域特定知识的规则
如果您正在引导新协作者加入代码库,您会提供哪些上下文信息以确保他们能够快速开展有价值的贡献?
这些问题的答案对于 Cursor 理解项目同样具有重要价值。每个组织或项目都蕴含着可能未完整记录在文档中的潜在知识。有效运用规则是确保 Cursor 全面理解项目背景的最佳方式。
例如,当您编写新功能或服务的实现指南时,可以考虑编写简明规则来为后续使用提供文档支持。
样板规范
code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] [&_pre>code>span.line-diff]:min-w-[calc(100%+3rem)] rounded-[14px] bg-white overflow-x-auto scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" component-part="code-block-root" style="font-variant-ligatures: none; height: auto;">
---
description: 添加新的 VSCode 前端服务
---
1. **接口定义:**
- 使用 `createDecorator` 定义新服务接口,并确保包含 `_serviceBrand` 以避免错误
2. **服务实现:**
- 在新建的 TypeScript 文件中实现服务,继承 `Disposable`,并通过 `registerSingleton` 注册为单例
3. **服务注入:**
- 创建贡献文件来导入和加载服务,并在主入口文件中完成注册
4. **上下文集成:**
- 更新上下文以包含新服务,确保应用全局可访问
如果您希望确保 Cursor 遵循特定的格式规范,可以考虑基于 glob 模式自动附加规则。
格式规范
code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] [&_pre>code>span.line-diff]:min-w-[calc(100%+3rem)] rounded-[14px] bg-white overflow-x-auto scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" component-part="code-block-root" style="font-variant-ligatures: none; height: auto;">
- create a plan for how we shoud create a new feature (just like @existingfeature.ts)
- ask me questions (max 3) if anything is unclear
- make sure to search the codebase
@Past Chats (my earlier exploration prompts)
here's some more context from [project management tool]:
[pasted ticket description]
该提示词要求模型通过向人类提问来制定计划并收集上下文,同时参考早期探索性提示和工单描述。推荐使用 claude-3.7-sonnet
、gemini-2.5-pro
或 o3
等思维模型,这些模型能够更好理解变更意图并综合制定计划。
通过这种方式,您可以在开始实施前借助 Cursor 迭代完善计划。