此文章来自AI产品部 - 罗剀迒
借助 Cursor 的定制规则模板自动生成代码,能够很好的提升开发效率和交付质量,尤其是一些台账报表类的开发工作,下面分享下在蓝鲸侧的应用。
一、 环境配置
要充分利用 Cursor 的功能,首先需要进行环境配置。
这包括安装与 Java 开发相关的扩展工具,以确保开发环境的完整性和便捷性。以下是推荐安装的 Java 相关扩展:
- Extension Pack ``for` `Java(Java基础支持包)
- Spring Boot Extension Pack(Spring Boot生态套件)
- Debugger ``for` `Java(调试追踪工具)
- Maven ``for` `Java(Maven依赖管理器)
二、 完善README.md文件
清晰的项目文档是开发团队高效协作的基础。如果项目中已有 README.md 文件,可以利用 Cursor 的功能重新生成一遍,它会根据项目现有内容进行补充和优化。
重新生成后的内容通常更加清晰,尤其是在项目结构部分的展示上,能够帮助开发者快速上手。
三、 Cursor rules
Cursor Rules 用于自定义 AI 在 Cursor 中的行为,可以视为对大型语言模型(LLM)的指令或系统提示。Cursor支持两种类型的规则设置:
- 全局规则:在Cursor设置中的 Rules > User Rules 设置,适用于所有项目。这类规则通常用于定义通用的编码规范,例如命名约定、代码风格等。
- 项目规则:通过 .cursor/rules 目录中的 .mdc 文件或项目根目录的 .cursorrules 文件设置,适用于特定项目。官方建议使用 .cursor/rules 目录来管理规则文件,因为 .cursorrules 文件将在未来版本中被废弃。
编写规则模板
全局规则
你是一名资深后端开发专家,精通 Java、Spring、SpringBoot、MyBatis、MyBatisplus、Maven、JUnit以及各种中间件,如:Kafka、Redis、Nacos、SpringCloud、SpringSecurity等。你思维缜密,能够提供细致入微的答案,并擅长逻辑推理。你会仔细提供准确、事实性、深思熟虑的答案,并且在推理方面堪称天才。`
- 严格按照用户的需求执行。
- 首先逐步思考——用伪代码详细描述你的构建计划。
- 确认后,再编写代码!
- 始终编写正确、符合最佳实践、遵循 DRY 原则(避免重复代码)、无错误、功能完整且可运行的代码,同时确保代码符合以下列出的 代码实现指南。
- 优先考虑代码的易读性和简洁性,而不是性能。
- 完全实现所有请求的功能。
- 不要留下任何待办事项、占位符或缺失的部分。
- 确保代码完整!彻底验证最终结果。
- 简洁明了,尽量减少其他描述。
- 如果你认为可能没有正确答案,请明确说明。
- 如果你不知道答案,请直接说明,而不是猜测。
- **注意:尽量使用已经存在的目录,而不是自建目录**
- 你需要严格按照 cursorrules 中的内容来生成代码,不要遗漏任何内容
项目规则
1、通用规则模板
蓝鲸开发基于 Spring Cloud 和 Spring Boot 框架,因此可以创建一个通用的规则模板,以确保开发规范的一致性。通用规则模板通常包括以下内容:
- 技术栈信息:说明项目使用的技术框架和工具。
- 代码风格:定义变量命名、方法命名、类命名的规范。
- 项目结构:规定项目的分层架构,例如 Controller 层、Service 层、Repository 层的职责划分。
通过创建 .cursor/rules/general.mdc 文件,开发团队可以统一编码规范,减少因个人风格差异导致的代码质量问题。
这里有各种语言的Cursor规则模板,可以参考 cursor.directory/java-spring…
2、场景化规则模板
除了通用规则模板,还可以创建场景化规则模板,以满足日常开发的具体需求。例如:
- 字段新增场景:定义字段新增的流程,包括数据库变更、实体对象更新、查询条件扩展等。
- 报表开发场景:规定报表接口的生成规则,包括分页查询、数据导出、权限控制等。
场景化规则模板可以通过继承通用规则来保持风格的一致性,同时针对特定场景进行优化。
例如,在 .cursor/rules/whale.mdc 文件中,可以登记财务模块的开发需求,并定义字段管理、报表查询等具体规则。
场景1:新增报表
- 需要实现增删改查、导入、导出接口
- 请优先采用Mybatis语法,而非Mybatis Plus
- controller,接口定义
- service层,业务逻辑
- mapper层,使用Mybatis进行数据库操作
- resource层,新增xml配置,Mybatis操作数据库
- 参考 @ZhyKuaishouConsumeController.java 的写法
场景2:新增报表字段
- 找到服务所在目录,如财务服务对应的目录是whale-modules/whale-finance
- 如果是非金额字段,需要加上搜索条件。
- domain层,DO在domain根目录,VO在domain下的vo目录,请按需增加相关字段。
- service层,如果使用了Mybatis Plus条件构造器查询语法,请按需增加查询条件。
- mapper层,如果使用了Mybatis查询语法,请在resources/mapper找到对应xml文件加上查询条件。
- 生成sql文件,添加Mysql表字段语句。
- 编写测试用例
四、 应用效果
通过上述配置和规则的设定,能够有效地提升开发效率。以下是两个具体的应用场景:
1、请参照场景1,根据 DO 对象 @FinanceVoucher.java 定义的字段,在财务服务的 finance 模块下实现报表相关接口。
2、请参照场景2,在 @FinanceVoucher.java 中新增一个字段,字段名称为“凭证摘要”,类型为字符。
基础的报表功能已经成功实现,生成的代码符合项目需求,无需额外调整。展示了 Cursor 在日常开发中的高效性和便利性。
五、 总结
Cursor为日常开发带来了显著的效能提升。通过定制化规则模板,能够实现代码生成的标准化和自动化,减少重复性工作,专注于业务逻辑的实现。
在后续可以根据实际开发场景,逐步增加更多的场景化规则模板。 这些模板可以针对特定功能模块、业务逻辑或代码结构进行定制,从而提升代码生成的精准度和适用性。