核心理念

目标: 把每次 Cursor 对话的价值最大化,形成可复用、可落地的知识资产~~。~~

第一级火箭: 通过 Chat 对话完成 Feature

核心价值

快速验证想法、完成核心功能产出

操作原则

  • 高频使用,先做最常用、最核心的功能
  • 暂不考虑边界情况,快速出原型
  • 强调"可工作"而非"完美"

示例 1: 在 ZCCBaseView 视频视图添加时间标签

背景: 项目中有一个视频基础视图 ZCCBaseView,需要在右上角添加一个显示时长的标签。 Prompt:

[I] Intent: 在 ZCCBaseView 的右上角添加一个时间标签(NSTextField)

[C] Constraints: 
- 距离右侧和顶部各 8pt 边距
- 使用手动布局(frame),不使用 Auto Layout
- 字体:系统 12pt,白色,半透明黑色背景
- 需要一个公开方法 updateWithTime: 用于更新时间显示

[E] Expected Output: 
- ZCCBaseView.h 的接口声明
- ZCCBaseView.m 的实现代码
- 简短的使用示例

AI 产出:

// ZCCBaseView.h
@interface ZCCBaseView : NSView

// Update the time label with time interval (in seconds)
- (void)updateWithTime:(NSTimeInterval)time;

@end
// ZCCBaseView.m
@interface ZCCBaseView ()
@property (nonatomic, strong) NSTextField *timeLabel;
@property (nonatomic, strong) NSDateComponentsFormatter *timeFormatter;
@end

@implementation ZCCBaseView

- (instancetype)initWithFrame:(NSRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        [self setupTimeLabel];
    }
    return self;
}

- (void)setupTimeLabel {
    // Initialize time formatter
    self.timeFormatter = [[NSDateComponentsFormatter alloc] init];
    self.timeFormatter.allowedUnits = NSCalendarUnitMinute | NSCalendarUnitSecond;
    self.timeFormatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehaviorPad;
    
    // Create time label
    self.timeLabel = [[NSTextField alloc] initWithFrame:NSZeroRect];
    self.timeLabel.editable = NO;
    self.timeLabel.bordered = NO;
    self.timeLabel.backgroundColor = [[NSColor blackColor] colorWithAlphaComponent:0.6];
    self.timeLabel.textColor = [NSColor whiteColor];
    self.timeLabel.font = [NSFont systemFontOfSize:12.0];
    self.timeLabel.alignment = NSTextAlignmentCenter;
    [self.timeLabel setWantsLayer:YES];
    self.timeLabel.layer.cornerRadius = 4.0;
    
    [self addSubview:self.timeLabel];
}

- (void)layout {
    [super layout];
    
    // Manual layout for time label
    CGSize labelSize = CGSizeMake(60, 20);
    CGFloat padding = 8.0;
    CGRect labelFrame = CGRectMake(
        self.bounds.size.width - labelSize.width - padding,
        self.bounds.size.height - labelSize.height - padding,
        labelSize.width,
        labelSize.height
    );
    self.timeLabel.frame = labelFrame;
}

- (void)updateWithTime:(NSTimeInterval)time {
    NSString *timeString = [self.timeFormatter stringFromTimeInterval:time];
    self.timeLabel.stringValue = timeString ?: @"00:00";
}

@end

使用示例:

ZCCBaseView *videoView = [[ZCCBaseView alloc] initWithFrame:rect];
[videoView updateWithTime:125.5]; // 显示 "02:05"

第二级火箭: 沉淀场景 + 生成可复用 Prompt

核心价值

把对话中产出的有价值信息抽象、整理成可复用场景和模板

操作原则

  • 按 MECE 法则(互斥、完全穷尽)整理场景
  • 移除冗余或无关的 Prompt 文本
  • 形成"模块化知识库"
  • 存储到 .cursor/rules/ 以便未来复用

操作流程

1. 回顾第一级对话,识别核心价值
   ↓
2. 移除冗余或无关的 Prompt 文本
   ↓
3. 按 MECE 整理场景
   ↓
4. 生成可复用 Prompt 模板
   ↓
5. 形成"模块化知识库"

实战示例: 从"添加时间标签"对话中沉淀模板

步骤 1: 分析原始对话

有价值的部分:

  • 在视图添加子控件的标准流程
  • 手动布局的实现方式
  • 属性声明的最佳实践(私有属性放 class extension)
  • 格式化器(Formatter)的复用模式 无价值的部分:
  • 具体的尺寸数字(60、20、8 等)
  • 时间标签特定的样式细节
  • 单次性的调试建议

步骤 2: 沉淀为可复用 Prompt 模板

创建文件: .cursor/rules/mac-add-subview-template.md

# Mac 视图添加子控件模板生成器

## 适用场景
- 在现有 NSView 子类中添加新的子控件
- 需要手动布局或 Auto Layout
- 需要公开接口供外部调用

## Prompt 模板

[I] Intent: 在 [ViewClassName] 中添加 [控件描述] [C] Constraints:

  • 控件类型: [NSTextField/NSButton/NSImageView/Custom]
  • 布局方式: [手动布局/Auto Layout]
  • 位置: [左上角/右上角/居中/自定义]
  • 样式要求: [字体/颜色/背景/边框等]
  • 公开接口: [是/否],方法签名 [method signature] [S] Steps:
  1. 在 .h 文件中声明公开接口(如果需要)
  2. 在 .m 文件的 class extension 中声明私有属性
  3. 在 init 方法中调用 setup 方法
  4. 实现 setup 方法,配置控件样式
  5. 在 layout 或使用 Auto Layout 设置位置
  6. 实现公开接口方法 [E] Expected Output:
  • .h 文件的接口声明(如果需要)
  • .m 文件的完整实现(带注释)
  • 使用示例

## 模块化代码模板

### 头文件(如果需要公开接口)
```objc
// [ViewClassName].h
@interface [ViewClassName] : NSView

// Public method to update the [control]
- (void)[updateMethodName]:(Type)parameter;

@end

实现文件

// [ViewClassName].m

// Private properties
@interface [ViewClassName] ()
@property (nonatomic, strong) NSTextField *[controlName];
@end

@implementation [ViewClassName]

- (instancetype)initWithFrame:(NSRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        [self setup[ControlName]];
    }
    return self;
}

- (void)setup[ControlName] {
    // Initialize and configure the control
    self.[controlName] = [[NSTextField alloc] initWithFrame:NSZeroRect];
    // ... configuration
    [self addSubview:self.[controlName]];
}

- (void)layout {
    [super layout];
    // Manual layout logic
}

// Or use Auto Layout
- (void)updateConstraints {
    [super updateConstraints];
    // Auto Layout constraints
}

// Public method
- (void)[updateMethodName]:(Type)parameter {
    // Implementation
}

@end

注意事项清单

  • 属性声明: 私有属性放 class extension,避免暴露实现细节
  • 布局选择: 性能敏感场景用手动布局,复杂布局用 Auto Layout
  • 格式化器: 可以声明为属性复用,避免重复创建
  • 命名规范: 遵循项目 .cursorrules 中的命名规范
---

##  第三级火箭: 闭环固化产出

### 核心价值
**形成可落地、可直接使用的完整产出**

### 完整产出物清单

□ 可复用代码库(封装为独立模块) □ 架构设计文档(含 Mermaid 图) □ API 使用文档(含示例代码) □ 单元测试用例(覆盖核心场景) □ 集成指南(如何接入现有项目) □ 故障排查手册(常见问题 FAQ) □ 可复用 Prompt 模板(存入 .cursor/rules/)


### 实战示例: 完整的视频视图组件库闭环产出

#### **综合 Prompt (结合第一级 + 第二级)**

[I] Intent: 生成完整的自定义视频视图组件库闭环产出 [C] Constraints:

  • 基于前面的"添加子控件"模板
  • 包含常用的视频 UI 组件(时间标签、音量指示器、状态图标)
  • 所有组件可直接落地使用
  • 符合项目 .cursorrules 规范
  • 包含完整的文档和使用示例 [S] Steps:
  1. 生成组件架构图(Mermaid 格式)
  2. 实现核心组件(ZCCTimeLabel + ZCCAudioIndicator + ZCCStatusIcon)
  3. 编写组件使用文档
  4. 为每个组件生成使用示例
  5. 创建组件集成指南(如何添加到现有视图)
  6. 生成可复用 Prompt 模板(存入 .cursor/rules/) [E] Expected Output: 完整的、可直接落地的视频视图组件库解决方案

#### **AI 产出(结构化、完整、可落地)**

**1. 架构图**
```mermaid
graph TB
    ZCCBaseView[ZCCBaseView 基础视图] --> TimeLabel[ZCCTimeLabel 时间标签]
    ZCCBaseView --> AudioIndicator[ZCCAudioIndicator 音量指示器]
    ZCCBaseView --> StatusIcon[ZCCStatusIcon 状态图标]
    
    TimeLabel --> Formatter[NSDateComponentsFormatter]
    AudioIndicator --> Animation[CAAnimation]
    StatusIcon --> ImageCache[Image 缓存]

2. 组件实现

// ZCCTimeLabel.h - 60 行
// ZCCTimeLabel.m - 120 行生产级代码

// ZCCAudioIndicator.h - 40 行
// ZCCAudioIndicator.m - 150 行生产级代码(含动画)

// ZCCStatusIcon.h - 35 行
// ZCCStatusIcon.m - 80 行生产级代码

// (完整实现,带注释、错误处理、性能优化)

3. 组件使用文档

# 视频视图组件库

## ZCCTimeLabel - 时间标签组件

### 功能
显示格式化的时间(MM:SS 或 HH:MM:SS)

### 使用示例
```objc
ZCCTimeLabel *timeLabel = [[ZCCTimeLabel alloc] initWithFrame:rect];
timeLabel.position = ZCCTimeLabelPositionTopRight;
timeLabel.padding = 8.0;
[videoView addSubview:timeLabel];

// 更新时间
[timeLabel updateWithTime:125.5]; // 显示 "02:05"

API Reference

  • @property (nonatomic, assign) ZCCTimeLabelPosition position;
  • @property (nonatomic, assign) CGFloat padding;
    • (void)updateWithTime:(NSTimeInterval)time;

**4. 集成指南**

```markdown
## 如何集成到现有项目

### 方式 1: 手动添加
1. 将 ZCCTimeLabel.h/m 添加到项目
2. 在需要的视图中 import "ZCCTimeLabel.h"
3. 按照使用示例添加到视图

### 方式 2: 使用 Cursor 生成
使用 Prompt 模板:@.cursor/rules/mac-add-subview-template.md
自动生成适配你项目的代码

5. Prompt 模板 - 存储到 .cursor/rules/video-component-template.md 6. 单元测试(可选)

// ZCCTimeLabelTests.m
// 测试时间格式化、布局计算等核心功能

三级火箭对比总结

火箭阶段Cursor 实践核心价值耗时ROI
一级:对话完成 Feature生成初步功能、代码或文档高频产出,快速验证10-30 分钟3-5倍
二级:沉淀场景 & Prompt抽离核心逻辑、生成可复用 Prompt模块化、知识沉淀30-60 分钟10-20倍
三级:闭环固化产出形成完整落地方案、可直接使用可落地、标准化闭环1-2 小时50-100倍

核心特点

  1. 从对话到模板再到闭环: 把每次 Chat 对话价值最大化
  2. 模块化 + Prompt 化: 未来遇到类似场景,只要套用模板即可
  3. 高频 → 沉淀 → 闭环: 保证输出可控、可复用、可落地

实战建议: 如何在日常工作中应用三级火箭

场景 1: 开发一个新功能(独立模块)

第一天: 用第一级火箭快速出原型
- 需求:在视频视图添加音量指示器
- 与 Cursor 对话,生成 ZCCAudioIndicator 核心逻辑
- 验证可行性,完成初步代码

第二天: 用第二级火箭沉淀模板
- 整理第一天的对话
- 提炼"添加动画控件"的 Prompt 模板
- 存储到 .cursor/rules/mac-animated-control-template.md

第三天: 用第三级火箭完善闭环
- 补充注释和错误处理
- 编写使用示例
- 形成可交付的完整组件

场景 2: 重构一个老模块

第一级: 让 AI 分析老代码,生成重构方案
- 需求:ZMPlistTableCellView 代码过长(3191 行)
- Prompt: "分析这个文件,建议如何拆分和重构"
- AI 输出:拆分为 5 个子模块的方案

第二级: 沉淀重构模式
- 提炼"大文件拆分重构模板"
- 存储到 .cursor/rules/refactoring-split-file-template.md

第三级: 形成可复用的重构工具链
- 生成"重构前后对比文档"
- 编写单元测试确保行为不变
- 形成团队的"重构最佳实践"文档

场景 3: 团队统一架构规范

第一级: 每个人用 AI 完成各自的功能
- 工程师 A: 添加时间标签
- 工程师 B: 添加状态图标
- 工程师 C: 添加音量指示器

第二级: 团队一起沉淀统一的 Prompt 模板
- 集体 Review 三个人的对话历史
- 提炼统一的"Mac 视图组件开发模板"
- 存储到团队共享的 .cursor/rules/

第三级: 形成团队的"组件库 + 文档库 + Prompt 库"
- 建立团队 GitHub 仓库存放组件
- 建立内部文档站点
- 建立 Prompt 模板库

"点线面体"战略在 Cursor 实践中的深度应用


一、什么是"点线面体"?(双层理解)

点 (Point)    - 你当下能做的小动作、小努力
  ↓             (写 Prompt、优化代码、学习技能)
线 (Line)     - 点所附着的轨迹和方向
  ↓             (功能模块、项目线、技术方向)
面 (Surface)  - 线组合形成的领域
  ↓             (整个业务领域、团队战略、技术体系)
体 (Body)     - 面所在的大势和环境
  ↓             (行业趋势、技术生态、市场环境)

点线面体:如何从个人到组织

点 (Point)    - 个人用 Cursor 写代码,创建 Rule/Prompt
  ↓
线 (Line)     - 把大家的 Rule/Prompt 联系在一起
  ↓
面 (Surface)  - 形成完整的知识库和工具链
  ↓
体 (Body)     - 建立团队协作和知识生态

二、点 (Point) - 个人用 Cursor 写代码,创建 Rule/Prompt

理念: 每个人都是知识的创造者

这一层的关键:

每个工程师在用 Cursor 解决实际问题
每个人都在创建自己的 .cursorrules 和 Prompt
知识是分散的、碎片化的、个人化的

典型场景

场景 1: 张三在开发视频 UI

问题: 需要在视频视图添加时间标签

张三的做法:
1. 与 Cursor 对话,生成代码
2. 在项目根目录的 .cursorrules 中添加:
   "添加视图控件时,使用手动布局而非 Auto Layout"
3. 记录了一个好用的 Prompt:
   "在 [View] 的右上角添加 [Control],距离边缘 8pt..."

产出物:
- 张三的个人 .cursorrules(片段)
- 张三的 Prompt 笔记(可能在 Notion/本地文件)
- 张三脑子里的经验(隐性知识)

场景 2: 李四在重构老代码

问题: ZMPlistTableCellView 有 3191 行,太长了

李四的做法:
1. 用 Cursor 分析代码,生成重构方案
2. 在 .cursorrules 添加:
   "代码重构时必须保证单元测试覆盖率 ≥ 80%"
3. 记录了一个 Prompt:
   "分析 @file 并建议如何拆分成多个文件..."

产出物:
- 李四的 .cursorrules 片段
- 李四的重构 Prompt 模板

场景 3: 王五在封装 C++ API

问题: 直接调用 C++ API 容易出错

王五的做法:
1. 用 Cursor 生成 Helper 封装
2. 在 .cursorrules 添加:
   "C++ 方法调用前必须检查 null"
3. 记录了一个 Prompt:
   "为 @CppAPI 创建一个 Helper 封装..."

产出物:
- 王五的 .cursorrules 片段
- 王五的 C++ 封装 Prompt

"点"阶段的特征

优点:
- 每个人快速提升个人效率
- 灵活,适应个人习惯
- 快速验证,快速迭代

问题:
- 知识分散,难以共享
- 重复劳动(张三、李四可能在解决同样的问题)
- 质量参差不齐(有的 Prompt 很好,有的很差)
- 难以传承(王五离职了,他的经验就丢失了)

典型的"点"阶段团队现状

团队有 10 个工程师:
- 8 个人在用 Cursor
- 每个人都有自己的 .cursorrules(但互不相同)
- 每个人都有自己的 Prompt 笔记(在各自的电脑/笔记本上)
- 偶尔在群里分享一个好用的 Prompt,但没有系统整理
→ 这就是典型的"点"阶段:知识碎片化,价值未联结

三、线 (Line) - 把大家的 Rule/Prompt 联系在一起

理念: 从碎片到体系

这一层的关键:

把分散在各个工程师手里的 Rule/Prompt 收集起来
整理、去重、分类、标准化
建立团队共享的知识库
让"点"连成"线",形成可复用的方法论

如何从"点"到"线"?

步骤 1: 收集(Collect)

团队行动:
1. 每个人分享自己最好用的 1-2 个 Rule/Prompt
2. 记录到共享文档(Confluence/Notion/GitHub)

步骤 2: 整理(Organize)

1. 将收集到的 Prompt 按场景分类
   - UI 开发类
   - 代码重构类
   - API 封装类
   - 测试生成类
   - ...

2. 去重和合并
   - 张三和李四的 Prompt 可能在解决同样的问题
   - 合并为一个最佳实践版本

3. 标准化格式
   - 统一使用 CRISPE 框架
   - 统一命名规范

步骤 3: 存储(Store)

建立团队的 .cursor/rules/ 目录结构:

project-root/
├── .cursorrules                    (项目通用规则)
└── .cursor/
    └── rules/
        ├── ui-development.md       (UI 开发 Prompt 模板)
        ├── code-refactoring.md     (代码重构 Prompt 模板)
        ├── cpp-api-wrapper.md      (C++ API 封装模板)
        ├── unit-test-generation.md (单元测试生成模板)
        └── ...

每个文件包含:
- 适用场景说明
- 标准化的 Prompt 模板
- 实际使用示例
- 注意事项

"线"阶段的特征

优点:
- 知识不再分散,形成团队资产
- 避免重复劳动(有现成模板直接用)
- 质量标准化(经过团队验证的最佳实践)
- 可传承(新人可以快速学习)

挑战:
- 需要有人推动
- 需要团队共识和配合
- 需要持续维护和更新

从"点"到"线"的关键里程碑

里程碑 1: 团队有了第一个共享的 .cursor/rules/ 文件
里程碑 2: 至少 50% 的工程师在使用共享模板
里程碑 3: 新人 Onboarding 时会被教导如何使用模板库
里程碑 4: 团队开始主动贡献新的模板

→ 达到这 4 个里程碑,就成功从"点"进化到了"线"

四、面 (Surface) - 形成完整的知识库和工具链

理念: 从"线"到"面"的质变

这一层的关键:

不仅仅是 Prompt 模板,而是完整的开发工具链
不仅仅是知识库,而是可自动化的工作流
不仅仅是团队内部,而是可跨团队复用的资产
形成一个"面",覆盖整个业务领域

"面"包含什么?

1. 知识库(Knowledge Base)
   ├── .cursor/rules/(15+ 个 Prompt 模板)
   ├── 组件库(可复用的代码模块)
   ├── 文档库(架构设计、最佳实践)
   └── 案例库(真实项目的使用案例)

2. 工具链(Toolchain)
   ├── Linter 规则(自动检查代码规范)
   ├── CI/CD 集成(自动化测试和部署)
   ├── 代码生成器(基于模板的脚手架)
   └── 质量看板(效率和质量指标)

3. 流程规范(Process)
   ├── Code Review 流程(如何用 Cursor 辅助 Review)
   ├── Bug 修复流程(如何用 Cursor 定位和修复)
   ├── 重构流程(如何安全地重构大型代码)
   └── 测试流程(如何生成和维护测试)

4. 培训体系(Training)
   ├── 新人 Onboarding 课程(1 天工作坊)
   ├── 进阶课程(高级 Prompt 技巧)
   ├── 案例分享会(每月)
   └── 考核认证(Cursor 使用能力评估)

成果: 形成完整的"面"

产出物:
知识库:30+ 模板 + 20+ 案例 + 完整文档站
工具链:Linter + 代码生成器 + 质量看板
流程规范:Code Review + 重构 + Bug 修复
培训体系:课程 + 工作坊 + 认证

覆盖范围:
40+ 工程师,3 个团队
UI、音视频、网络、数据库等所有领域
从需求到上线的完整开发流程

效果:
整体开发效率提升 50%
Bug 率降低 30%
Code Review 时间减少 40%
新人 Onboarding 时间从 4 周降到 1 周
团队代码质量评分提升 25%

"面"阶段的特征

优点:
- 形成完整的业务领域覆盖
- 不仅是知识,还有工具和流程
- 可跨团队复用,规模化效应
- 形成明显的竞争优势

挑战:
- 需要管理层支持(资源投入)
- 需要跨团队协作(利益协调)
- 需要持续投入(维护和更新)
- 需要文化变革(接受 AI-First)

从"线"到"面"的关键里程碑

里程碑 1: 知识库覆盖 3+ 个业务领域
里程碑 2: 至少 2 个团队在使用同一套工具链
里程碑 3: 有自动化工具(Linter / 代码生成器)
里程碑 4: 有完整的培训体系和认证标准
里程碑 5: 有可量化的 ROI 数据证明价值

→ 达到这 5 个里程碑,就成功从"线"进化到了"面"

五、体 (Body) - 建立团队协作和知识生态

理念: 从工具到文化,从资产到生态

这一层的关键:

不仅是工具和流程,而是团队文化和价值观
不仅是知识库,而是自我进化的知识生态
不仅是效率提升,而是组织能力的质变
形成一个"体",建立难以复制的竞争壁垒

"体"的四大特征

1. 自我进化的知识生态

传统知识库:
- 需要专人维护
- 容易过时
- 贡献动力不足

"体"的知识生态:
每个工程师都是贡献者
   - 发现新的好用 Prompt → 主动提交到库
   - 发现模板不好用 → 主动优化并更新
   
有反馈循环
   - 使用数据自动收集(哪些模板使用最多)
   - 根据数据优先优化高频模板
   - 过时的模板自动标记或删除

→ 知识库不再是"死"的文档,而是"活"的、自我进化的生态

2. AI-First 成为团队文化

传统开发文化:
- 遇到问题 → Google / Stack Overflow
- 写代码 → 手写
- Code Review → 人工检查

"体"的 AI-First 文化:
遇到问题 → 先查团队 Prompt 库 → 再用 Cursor 解决
写代码 → 先用 Cursor 生成初版 → 再优化
Code Review → Cursor 先自动检查 → 人工复审关键逻辑

团队共识:
   - "不用 Cursor 就像骑自行车而不开车"
   - "好的 Prompt 比好的代码更有价值"
   - "知识沉淀是每个人的责任"

→ AI 不再是"工具",而是团队工作方式的一部分

3. 跨团队协作网络

传统团队模式:
- 各团队独立工作
- 知识封闭在团队内部
- 重复造轮子

"体"的协作网络:
知识跨团队流动
   - VideoUI 团队的 Prompt → PhoneUI 团队也在用
   - Clips 团队的组件库 → VideoUI 团队也在用
   
有协作机制
   - 每月跨团队 Cursor 分享会
   - 共享的 GitHub 仓库(存放所有团队的模板)
   - 内部技术博客(案例分享)
   
有治理结构
   - "Cursor 委员会"(各团队代表)
   - 负责模板审核、标准制定、冲突解决

→ 不再是"我的团队",而是"我们的组织"

"体"阶段的特征

成功标志:
- AI-First 成为团队的默认工作方式
- 知识库是"活"的,持续进化
- 跨团队协作顺畅,知识自由流动
- 对外有竞争壁垒,人才愿意加入和留下
- 管理层认可:这是组织的核心能力之一

这不是终点:
- "体"需要持续投入和维护
- 需要防止"官僚化"(流程过于复杂)
- 需要保持创新(避免固化)

从"面"到"体"的关键里程碑

里程碑 1: 有明确的激励机制,工程师主动贡献
里程碑 2: AI-First 被写入团队价值观/OKR
里程碑 3: 跨团队协作机制运转良好(如 Cursor Day)
里程碑 4: 知识库有明显的"自我进化"迹象
里程碑 5: 对外有影响力(招聘、技术大会)
里程碑 6: 管理层视其为组织核心能力

→ 达到这 6 个里程碑,就成功从"面"进化到了"体"

常见陷阱和避坑指南

陷阱 1: 跳级发展(想直接做"体")

 错误做法:
"我要建立一个完整的 AI 开发平台!"
→ 还没验证"点"的价值
→ 还没沉淀"线"的方法论
→ 还没形成"面"的覆盖

结果: 过度工程化,无人使用,项目失败

 正确做法:
从最小的"点"开始
→ 验证 3-5 个"点"后,再考虑"线"
→ 形成 2-3 条"线"后,再考虑"面"
→ "面"被团队广泛采用后,再考虑"体"

陷阱 2: 停留在"点",不形成"线"

 错误做法:
"我每天都用 Cursor,效率很高!"
→ 但没有沉淀任何模板
→ 每次都在重复劳动
→ 知识无法传承


 正确做法:
设定"沉淀里程碑"
→ 每解决 5 个类似问题,必须沉淀 1 个模板
→ 每月至少沉淀 2-3 个 Prompt
→ 定期 Review 和优化模板

陷阱 3: "面"太窄,无法形成"体"

 错误做法:
"我们团队只用 Cursor 生成单元测试"
→ 只覆盖了一个极小的领域
→ 无法形成完整的工作流
→ 对团队整体效率影响有限

结果: 边缘化,难以推广

 正确做法:
选择核心业务领域
→ 覆盖开发流程的多个环节
→ 形成端到端的解决方案
→ 体现在关键指标上(如 Sprint 交付速度)

常见误区

误区 1: 只做第一级,不做第二三级

 错误: "我每天都用 Cursor 完成任务,但每次都要重新描述需求"

问题: 没有沉淀,每次都在重复劳动

 正确: 每完成 3-5 个类似任务,就花 1 小时沉淀一个模板

误区 2: 跳过第一级,直接追求"完美模板"

 错误: "我先花 2 天设计一个完美的 Prompt 模板"

问题: 过度设计,脱离实际需求

 正确: 先用第一级快速验证 3-5 次,再沉淀模板

误区 3: 第三级产出过于庞大,难以维护

 错误: "我生成了一个 10000 行的完整框架"

问题: 过度工程化,难以理解和维护

 正确: 保持模块化,每个模块 200-500 行,高内聚低耦合

Just Do it

立即可用的 Prompt 模板

# 模板 1: Mac 视图添加子控件
存储位置: .cursor/rules/mac-add-subview-template.md

[I] Intent: 在 [ViewClassName] 中添加 [控件描述]
[C] Constraints:
- 控件类型: [NSTextField/NSButton/NSImageView]
- 布局方式: [手动布局/Auto Layout]
- 位置: [左上角/右上角/居中]
[S] Steps: [详见文档第二级火箭部分]
[E] Expected Output: 完整的 .h 和 .m 实现代码

---

# 模板 2: 代码重构(长文件拆分)
存储位置: .cursor/rules/refactoring-split-file-template.md

[I] Intent: 分析并拆分超长文件 @[FileName]
[C] Constraints:
- 目标: 每个文件 < 500 行
- 保证: 行为完全一致
- 测试: 单元测试覆盖率 ≥ 80%
[S] Steps:
1. 分析文件职责,识别可拆分的模块
2. 设计拆分方案(建议 3-5 个文件)
3. 生成拆分后的代码
4. 生成单元测试确保行为一致
[E] Expected Output: 拆分方案 + 新文件代码 + 测试用例

---

# 模板 3: 生成单元测试
存储位置: .cursor/rules/generate-unit-tests-template.md

[I] Intent: 为 @[ClassName] 的 [methodName] 方法生成单元测试
[C] Constraints:
- 测试框架: XCTest
- 覆盖: 正常流程 + 边界情况 + 异常处理
- 命名: test[MethodName]_[Scenario]_[ExpectedResult]
[S] Steps:
1. 分析方法的输入输出和副作用
2. 识别需要测试的场景(至少 3 个)
3. 生成测试代码(包含 setUp 和 tearDown)
4. 添加必要的 Mock 对象
[E] Expected Output: 完整的测试类代码

本站提供的所有下载资源均来自互联网,仅提供学习交流使用,版权归原作者所有。如需商业使用,请联系原作者获得授权。 如您发现有涉嫌侵权的内容,请联系我们 邮箱:[email protected]