Cursor 编程实践与案例分析
Cursor 编程实践与案例分析
1. 什么是 Cursor?
Cursor 是一款面向开发者的 AI 编程助手,集成于本地 IDE,支持自然语言与代码的无缝协作。它不仅能自动补全、重构、查找代码,还能理解业务上下文,辅助解决实际开发中的复杂问题。
2. Cursor 在实际工作中的优势
高效代码检索:通过自然语言描述,快速定位项目中的相关代码、表结构、业务逻辑。
智能代码生成与重构:根据业务需求自动生成方法、SQL、接口,减少重复劳动。
业务流程梳理:能根据业务描述,自动梳理出数据流、调用链,辅助理解和优化系统。
问题定位与修复:遇到报错或异常时,能快速分析原因并给出修复建议。
文档与注释生成:自动生成方法注释、接口文档、技术分享材料等。
2.1 Cursor和其他智能体的区别
|-------|----------------|------------|----------------|
| 维度 | GitHub Copilot | ChatGPT | Cursor |
| 交互方式 | 代码补全、片段生成 | 文本对话、单文件生成 | IDE 集成、多文件项目生成 |
| 项目支持 | 适合零散代码片段 | 缺乏项目结构理解 | 支持完整项目架构生成 |
| 业务理解 | 依赖上下文有限 | 需明确需求描述 | 可解析业务流程与数据模型 |
| 新手友好度 | 适合有经验开发者 | 需人工整合代码 | 自动生成可运行项目结构 |
| 协作能力 | 个人开发辅助 | 缺乏团队协作支持 | 支持多人协作代码审查 |
2.2 Cursor 使用建议与局限性
- 高效使用策略
- 自然语言技巧:使用 "分析""优化""生成" 等关键词明确需求,如 "生成 Vue3 组件的单元测试用例"
- 分阶段开发:将复杂项目分解为模块,逐步让 Cursor 生成各部分代码
- 代码审查机制:生成代码后进行二次 Review,确保业务逻辑与安全性
- 当前局限性
- 复杂项目处理:尚无法独立完成中大型项目的全流程开发,需人工拆解需求
- 深度业务理解:对于高度定制化的业务逻辑,可能需要多次交互才能准确实现
- 性能优化能力:在算法级优化、底层代码调优方面仍需人工介入
2.3 Cursor的配置和使用
- Model
- Agent
- Bug Finder

- rule
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Markdown # 项目基础说明 - 本项目基于 Vue 3 + TypeScript + Element Plus + Pinia + Vite 搭建。 - 采用组合式 API(`<script setup lang="ts">`)进行开发。 - 状态管理使用 Pinia,模块化组织。 - 路由使用 Vue Router,采用权限动态路由配置。 - 接口请求统一封装在 `@/utils/request.ts` 中,使用 Axios。 - 表格、表单页面基于 Element Plus 封装通用组件,提高复用性。 # 组件和文件命名规范 - 组件文件名使用 `PascalCase` 格式,例如:`UserTable.vue`, `LoginForm.vue` - 公共组件放置在 `src/components/` 下,业务组件可放在 `src/views/模块/components/` 中 - 文件夹名和非组件 `.ts/.scss` 文件使用 `kebab-case` 格式,例如:`user-api.ts`, `login-form.scss` - 页面文件命名与路由保持一致,使用 `kebab-case`,例如:`user-list.vue`, `role-edit.vue` # 样式和 CSS 使用约定 - **优先使用原子类:** 使用 UnoCSS 提供的原子类进行布局和样式,例如常见的 flex 布局(`flex justify-center items-center` 等)。样式语义明确,便于维护。 - **常用组合提取为全局快捷方式:** 对于**频繁使用**的原子类组合,应在 `unocss.config.ts` 中通过 `shortcuts` 定义全局组合类。例如:将 `flex justify-center items-center` 定义为 `flex-center`,这样可以在整个项目中复用。组合类命名应简洁且语义化,反映布局或功能意图。 - **非常用组合使用局部类:** 对于特定组件中使用但不常见的、超过3个的原子类组合,应该在组件内使用局部CSS类(使用`<style scoped>`块),避免过多的全局组合污染全局命名空间。 - **避免重复代码:** 不论是通过全局`shortcuts`还是局部CSS类,都应避免在多个地方重复编写相同的原子类列表,保持代码 DRY(Don't Repeat Yourself)原则。 - **样式优先级:** 优先考虑 UnoCSS 解决方案(原子类或组合类),其次才是传统 CSS。当需要使用传统 CSS 时,遵循 BEM 命名规范,即 `block__element--modifier` 格式。 # 导入顺序规范(保持统一结构) 1. Vue 相关 API(如 `ref`, `computed`, `onMounted`) 2. 第三方库(如 `element-plus`, `axios`) 3. 工具函数(如 `@/utils/*`) 4. 状态管理(如 `@/store/*`) 5. 项目内部组件、模块(如 `@/components`, `@/views`) 6. 样式文件 # 开发注意事项 - 使用 TypeScript,避免使用 `any`; - 组件职责单一,保持结构清晰; - 所有组件必须使用组合式 API; - 适当添加注释,提升 AI 理解。 |
3. 典型工作流与实际案例
3.1 代码检索与业务理解
场景:需要理解某个业务流程涉及的表结构和数据流。
实际操作:
- 用 Cursor 搜索 operation_type 字段,快速定位 course_times_detail_operation_tasks 表的结构和各类型的业务含义。
- 通过自然语言提问"帮我分析 getCourseChangeList 这方法的逻辑 流程 和sql",Cursor 自动梳理出控制器、业务层、SQL 的完整调用链和数据流。
3.2 智能代码生成与重构
场景:实现课次回收功能
文本需求描述:
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Bash 在CourseTimesConvertRecycleTaskJobBusiness的task里面,我要实现以下功能, 接收参数如下 task(payTaskId=0,freeTaskId=0,operationContent) 1.task里面处理两个任务,一个是付费,一个是免费,至少有一个是非空的,operationContent是执行的具体内容 2.通过 TaskService::getInstance()-\>getInfoByID(taskId); 获取任务信息,任务表是course_times_detail_operation_tasks,operation_rule的内容如下 付费:{"type": "pay", "datas": {"course_amount": 10, "source_course_num": 10, "target_course_num": 10, "convert_performance_no_list": [{"course_amount": 1, "channel_order_no": "CT-20250123193907602208973", "source_course_num": 1, "target_course_num": 1, "source_performance_no": "CT-20250123193907602208973"}, {"course_amount": 9, "channel_order_no": "CT-20250123193907723463141", "source_course_num": 9, "target_course_num": 9, "source_performance_no": "CT-20250123193907723463141"}]}} 免费:{"type": "free", "datas": {"course_amount": 0, "source_course_num": 10, "target_course_num": 10, "convert_performance_no_list": [{"channel_order_no": "CT-20250123193907602208973", "source_course_num": 2, "target_course_num": 2, "source_performance_no": "CT-22250123193908450905348"}, {"channel_order_no": "CT-20250123193907723463141", "source_course_num": 8, "target_course_num": 8, "source_performance_no": "CT-22250123193908450905349"}]}} 对应的字段名含义如下: "course_amount": "金额", "target_course_num": "目标课次", "source_course_num": "源课次", "convert_performance_no_list": "转换履约单列表", "channel_order_no": "渠道订单号", "source_performance_no": "源履约单号", "source_course_num": "源课次", "course_amount": "金额", "target_course_num": "目标课次" 开启事务 1.接下来需要循环convert_performance_no_list 插入课次回收流水表course_times_card_account_recycle_flows,插入数据AccountRecycleFlowService的addRecycleFlow方法 public function addRecycleFlow(datas) { model = new AccountRecycleFlowsModel(); model-\>user_id = datas['user_id']; model-\>recycle_trans_no = datas['recycle_trans_no']; model-\>trans_no = datas['trans_no']; model-\>card_no = datas['card_no']; model-\>operation_type = datas['operation_type']; model-\>performance_no = datas['performance_no']; model-\>work_order_no = datas['work_order_no']; model-\>amount = datas['amount']; model-\>num = datas['num']; model-\>save(); return model->toArray(); } 里面的user_id是task表的user_id,recycle_trans_no是 AccountPerformancesModel::makeTransNo("CCR")方法生成的;,trans_no是TransNo = AccountPerformancesModel::makeTransNo(OperationTasksModel::OPERATION_TYPE_PREFIX\[OperationTasksModel::OPERATION_TYPE_LIST\['convert_recycle'\]\])生成的;,operation_type是task表的operation_type,performance_no是convert_performance_no_list元素里的source_performance_no,work_order_no是task表的work_order_no,amount是convert_performance_no_list元素里的course_amount,num是convert_performance_no_list元素里的source_course_num 2.更新convert_performance_no_list元素里的每一个source_performance_no的课次,操作course_times_card_account_performances课次订单结果表,参考这个方法 AccountPerformancesModel::where('performance_no', performanceNo)->decrement('freeze_num', sourceCourseNum); 3.回收课次账户下对应的冻结课次,操作course_times_card_accounts表,参考这个方法 public function subtractFreezeBumOrPresentFreezeNumByCarNo(type, num, cardNo) { //课次账户的付费冻结课次 if (type == 1) { AccountsModel::where('card_no', cardNo)->decrement('freeze_num', num); } else { //课次账户的赠送冻结课次 AccountsModel::where('card_no', cardNo)->decrement('present_freeze_num', num); } } 4.完成课次回收操作后,开始通知订单服务执行新的履约 res = ChannelPlatformService::getInstance()->convertRechargeCourse($operationContent); 提交事务,返回结果 请帮我实现以上功能 |
继续优化:
1.formateOperationContent有很多foreach 能不能简化
2.将单sql操作改成批量执行,减少对数据库的操作次数
收益:节省了大量手写和调试 SQL 的时间,代码风格统一,易于维护。
接口文档需求描述:
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| JSON { "规则名称列表【搜索用】": { "url": "/plan/rule/getRuleNameList", "method": "GET", "params": { }, "response": { "code": 200, "msg": "success", "data": [ { "id": 1, "title": "窦神归来-周日" }, { "id": 1, "title": "窦神归来-周日" } ] } }, "tag_dict增加联动关系 增加接口": { "url": "/tag/hierarchy", "method": "GET", "params": { }, "response": { "code": 200, "msg": "OK", "data": { "list": [ { "subject_id": "43", "subject_name": "英语", "item_list": [ { "item_id": "44", "item_name": "系统课", "category_type_list": [ { "category_type_id": "47", "category_type_name": "阅读大师课" }, { "category_type_id": "48", "category_type_name": "大师精讲课" }, { "category_type_id": "49", "category_type_name": "大师晨读课" } ] }, { "item_id": "45", "item_name": "专项课", "category_type_list": [ { "category_type_id": "50", "category_type_name": "文化解析专项课" } ] }, { "item_id": "46", "item_name": "转化课", "category_type_list": [ { "category_type_id": "51", "category_type_name": "转化班" } ] } ] }, { "subject_id": "27", "subject_name": "语文", "item_list": [ { "item_id": "28", "item_name": "窦神归来", "category_type_list": [ { "category_type_id": "1", "category_type_name": "窦神归来班" }, { "category_type_id": "42", "category_type_name": "窦神归来第二季" } ] }, { "item_id": "29", "item_name": "底阅作小王者", "category_type_list": [ { "category_type_id": "2", "category_type_name": "底阅作小王者班" } ] }, { "item_id": "30", "item_name": "王者班", "category_type_list": [ { "category_type_id": "3", "category_type_name": "王者班" } ] }, { "item_id": "31", "item_name": "阅读写作专项", "category_type_list": [ { "category_type_id": "4", "category_type_name": "阅读拔尖班" }, { "category_type_id": "5", "category_type_name": "写作拔尖班" } ] }, { "item_id": "32", "item_name": "大语文", "category_type_list": [ { "category_type_id": "6", "category_type_name": "大语文班" }, { "category_type_id": "7", "category_type_name": "中考冲刺班" } ] }, { "item_id": "38", "item_name": "底阅作突破Only", "category_type_list": [ { "category_type_id": "33", "category_type_name": "底阅作突破Only" } ] }, { "item_id": "39", "item_name": "保尖班", "category_type_list": [ { "category_type_id": "34", "category_type_name": "拼音笔顺专项课" }, { "category_type_id": "35", "category_type_name": "文言文专项" }, { "category_type_id": "36", "category_type_name": "小升初专项" }, { "category_type_id": "37", "category_type_name": "期末保尖班" } ] }, { "item_id": "40", "item_name": "国宝课", "category_type_list": [ { "category_type_id": "41", "category_type_name": "国宝课" } ] } ] } ], "grade_list": [ { "grade_id": "0", "grade_name": "不限年级" }, { "grade_id": "1", "grade_name": "一年级" }, { "grade_id": "2", "grade_name": "二年级" }, { "grade_id": "3", "grade_name": "三年级" }, { "grade_id": "4", "grade_name": "四年级" }, { "grade_id": "5", "grade_name": "五年级" }, { "grade_id": "6", "grade_name": "六年级" }, { "grade_id": "7", "grade_name": "七年级" }, { "grade_id": "8", "grade_name": "八年级" }, { "grade_id": "9", "grade_name": "九年级" }, { "grade_id": "10", "grade_name": "高一" }, { "grade_id": "11", "grade_name": "高二" }, { "grade_id": "12", "grade_name": "高三" } ], "weekday_list": [ { "weekday_id": "1", "weekday_name": "周一" }, { "weekday_id": "2", "weekday_name": "周二" }, { "weekday_id": "3", "weekday_name": "周三" }, { "weekday_id": "4", "weekday_name": "周四" }, { "weekday_id": "5", "weekday_name": "周五" }, { "weekday_id": "6", "weekday_name": "周六" }, { "weekday_id": "7", "weekday_name": "周日" } ] } } }, "规则列表【关联排班】【创建时间倒序】": { "url": "/plan/rule/getRuleList", "method": "GET", "params": { "page": 1, "page_size": 10, "title": "规则名称", "status_comment": "规则状态1:启用,2:禁用", "status":1, "category_type_id":1 }, "response": { "code": 200, "msg": "success", "data": [ { "id": 1, "title": "窦神归来-周日", "relation_plan_list": [ { "id": 1, "name": "窦神归来-周日" }, { "id": 2, "name": "窦神归来-周日" } ], "subject_name": "语文", "item_name": "王者班", "category_type_name": "王者班", "grade_name": "一年级", "week_name": "周一", "status": 1, "status_comment": "启用", "create_time": "2021-01-01 00:00:00" }, { "id": 1, "title": "窦神归来-周日", "relation_plan_list": [ { "id": 1, "name": "窦神归来-周日" }, { "id": 2, "name": "窦神归来-周日" } ], "subject_name": "语文", "item_name": "王者班", "category_type_name": "王者班", "grade_name": "一年级", "week_name": "周一", "status": 1, "status_comment": "启用", "create_time": "2021-01-01 00:00:00" } ] } }, "创建规则": { "url": "/plan/rule/create", "method": "POST", "params": { "id_comment": "id为空时新增,不为空时编辑", "id": 1, "title": "窦神归来-周日", "subject_id": 1, "item_id": 1, "category_type_id": 1, "grade_id": 1, "week_id": 1, "status": 1 }, "response": { "code": 200, "msg": "success", "data": {} } }, "更新规则": { "url": "/plan/rule/update", "method": "POST", "params": { "id": 1, "title": "窦神归来-周日", "status": 1 }, "response": { "code": 200, "msg": "success", "data": {} } }, "部门列表": { "url": "/plan/rule/getDepartmentList", "method": "GET", "params": {}, "response": { "code": 200, "msg": "success", "data": [ { "role_id": 1, "manager_name": "梧桐团队", "group_list": [ { "role_id": 1, "group_name": "助教二组", "assistant_list": [ { "role_id": 1, "name": "张三" }, { "role_id": 2, "name": "李四" } ] }, { "role_id": 2, "group_name": "助教一组" } ] } ] } }, "班主任管理列表【支持部门筛选,接量状态】【账号创建时间倒序】": { "url": "/plan/config/getAllTeacherConfig", "method": "GET", "params": { "page": 1, "page_size": 10, "teacher_ids":[1,2,3], "status_comment":"是否接量 1:接量,2:停止接量", "status":1 }, "response": { "code": 200, "msg": "OK", "data": { "page": 1, "page_size": 30, "total_num": 2, "list": [ { "teacher_id": 10153, "name": "王闪闪", "mobile": "18838917910", "belong_to": "马英豪部门", "role":1, "status": 1, "alloc_total": 10, "current_total": 0 }, { "teacher_id": 10157, "name": "张娟", "mobile": "17710691104", "belong_to": "马英豪部门", "status": 1, "alloc_total": 10, "current_total": 0 } ] } }, "班主任接量详情列表【倒序】": { "url": "/plan/config/getTeacherPlanList", "method": "GET", "params": { "teacher_id":1 }, "response": { "code": 200, "msg": "success", "data": { "list": [ { "id": 1, "plan_id":1, "plan_title": "张三", "rule_list":[ { "id": 1, "title": "窦神归来-周日" } ], "current_total":10, "current_total_comment":"总实际接量", "alloc_total":10, "alloc_total_comment":"总计划接量", "status":"1", "status_comment":"是否接量 1:接量,2:停止接量" } ] } } }, "获取所有班型列表":{ "url":"/tag/categoryTypeList", "method":"GET", "params":{}, "response":{ "code": 200, "msg": "success", "data": { "list": [ { "id": 51, "tag_group_id": 1, "tag_key": "19", "tag_value": "转化班" }, { "id": 50, "tag_group_id": 1, "tag_key": "18", "tag_value": "文化解析专项课" }, { "id": 49, "tag_group_id": 1, "tag_key": "17", "tag_value": "大师晨读课" }, { "id": 48, "tag_group_id": 1, "tag_key": "16", "tag_value": "大师精讲课" }, { "id": 47, "tag_group_id": 1, "tag_key": "15", "tag_value": "阅读大师课" }, { "id": 42, "tag_group_id": 1, "tag_key": "14", "tag_value": "窦神归来第二季" }, { "id": 41, "tag_group_id": 1, "tag_key": "13", "tag_value": "国宝课" }, { "id": 37, "tag_group_id": 1, "tag_key": "12", "tag_value": "期末保尖班" }, { "id": 36, "tag_group_id": 1, "tag_key": "11", "tag_value": "小升初专项" }, { "id": 35, "tag_group_id": 1, "tag_key": "10", "tag_value": "文言文专项" }, { "id": 34, "tag_group_id": 1, "tag_key": "9", "tag_value": "拼音笔顺专项课" }, { "id": 33, "tag_group_id": 1, "tag_key": "8", "tag_value": "底阅作突破Only" }, { "id": 7, "tag_group_id": 1, "tag_key": "7", "tag_value": "中考冲刺班" }, { "id": 6, "tag_group_id": 1, "tag_key": "6", "tag_value": "大语文班" }, { "id": 5, "tag_group_id": 1, "tag_key": "5", "tag_value": "写作拔尖班" }, { "id": 4, "tag_group_id": 1, "tag_key": "4", "tag_value": "阅读拔尖班" }, { "id": 3, "tag_group_id": 1, "tag_key": "3", "tag_value": "王者班" }, { "id": 2, "tag_group_id": 1, "tag_key": "2", "tag_value": "底阅作小王者班" }, { "id": 1, "tag_group_id": 1, "tag_key": "1", "tag_value": "窦神归来班" }, { "id": 57, "tag_group_id": 1, "tag_key": "20", "tag_value": "底阅作" } ] } } } } |
1.alloc-engine是一个基于php8.2的lumen项目,我要在这项目里实现以上接口,调用流程是这样的,路由定义在web.php里面,路由对应的controller在xxx,controller调用business,business调用service,其中service负责从model里或者redis里面获取数据
2.这个接口涉及到的表有xxx,xxx,xxx,其中表关系是这样的。。。。。。。 请根据需求帮我实现接口
3.3 业务流程优化与重构
场景:需要对已有的多方法进行合并和优化,减少重复代码。
实际操作:
- 提出"能不能把 buildRecycleNoMap 和 fillTransNoByPerformance 合成一个方法,名字叫 formateOperationContent 并实现代码逻辑"。
- Cursor 自动分析两者的功能重叠,合并为一个更简洁、可维护的实现,并给出优化建议。
收益:代码结构更清晰,后续维护和扩展更方便。
3.4 问题定位与修复
场景:遇到 PHP 8 的参数顺序警告、Undefined array key 报错等。
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| SQL Optional parameter payTaskId declared before required parameter operationContent is implicitly treated as a required parameter in <b>/Users/linxi/app/course-times-sr/app/Http/Business/Task/CourseTimesConvertTaskJobBusiness.php "code":0,"file":"/Users/linxi/app/course-times-sr/app/Http/Business/Task/CourseTimesConvertTaskJobBusiness.php","msg":"Undefined array key 9","line":146} |
实际操作:
- 直接粘贴报错信息,询问"如何修复?"
- Cursor 能快速定位问题根源(如参数顺序、数组 key 类型不一致),并给出最优修复方案。
收益:大幅提升了排查和修复线上/开发环境 bug 的效率。
3.5 文档与技术分享自动生成
场景:需要为团队输出技术分享、代码注释、接口文档。
实际操作:
- 用自然语言描述需求和背景,Cursor 自动生成结构化的技术文档、方法注释、SQL 说明等。
- 例如本篇文档,即由 Cursor 根据实际开发记录自动生成。
收益:极大降低了文档编写门槛,提升了团队知识沉淀效率。
3.6 根据UI图快速生成页面
- 帮我生成一个企业官网
- 请根据UI设计图,基于vue3 帮我完美复刻这个页面 ,缺失的图片用占位图代替,icon 用 SVG 或 emoji 占位
3.7 curosr
|-------|-------------|--------------------------------------------------------------|
| 场景 | 推荐关键词 | 示例(效果对比) |
| 代码生成 | 实现、创建、编写、构建 | ❌ 普通:写个用户登录功能 ✅ 高效:实现基于 JWT 的用户认证系统,包含注册、登录、Token 刷新和权限验证 |
| 功能优化 | 重构、优化、改进 | ❌ 普通:这个函数太慢了 ✅ 高效:优化这个递归算法,降低时间复杂度到 O (n) |
| 错误修复 | 调试、修复、解决 | ❌ 普通:这个代码有问题 ✅ 高效:修复这个 TypeScript 类型错误,确保所有接口字段都被正确校验 |
| 文档生成 | 注释、文档、说明 | ❌ 普通:给这段代码加注释 ✅ 高效:生成符合 Google 风格的 Python 文档字符串,包含参数类型和返回值说明 |
| 跨语言转换 | 转换、翻译、重写 | ❌ 普通:把这个函数变成 Java ✅ 高效:将此 Python 代码翻译为 Kotlin,保持相同的异步逻辑 |
4. 常见问题与建议
建议用自然语言描述业务需求,Cursor 能理解上下文并给出更贴合实际的代码和建议。
多用"分析"、"优化"、"合并"等关键词,让 Cursor 帮你做结构性重构。
遇到报错直接贴报错信息,Cursor 能快速定位并修复。
善用表结构、SQL、业务流程的自动梳理,尤其在对接遗留系统或新业务时。
代码生成后要结合实际业务做二次 review,确保逻辑和安全性。
5. 总结

各个领域下的AI排名
|-------|---------------------------|
| AI领域 | AI名字 |
| AI对话 | DeepSeek、豆包、KIMI、ChatGPT |
| AI搜索 | 秘塔AI搜索、纳米AI搜索、Perplexity |
| AI编程 | Trae、Cursor |
| AI绘图 | 即梦、可灵、Midjourney、Libl lib |
| AI声音 | 海螺AI、11labs |
| AI音乐 | Suno、海绵音乐 |
| AI视频 | 可灵、海螺AI、Vidu、PixVerse |
| AI 3D | TripoAI、混元3D |