写点什么

AI 编程在 BOSS 项目的实践经验分享

作者:智在碧得
  • 2025-05-30
    广东
  • 本文字数:5086 字

    阅读完需:约 17 分钟

AI编程在BOSS项目的实践经验分享

前言

在人工智能技术革新浪潮的推动下,智能编程助手正以前所未有的速度重塑开发领域。这些基于 AI 的代码辅助工具通过智能提示生成、实时错误检测和自动化重构等功能,显著提升了软件工程的全流程效率。无论是初入行业的开发者还是资深程序员,都能借助这些工具快速突破技术瓶颈——新手可借此规避基础语法错误并学习最佳实践,而资深工程师则能通过智能优化建议将重复性编码工作转化为创造性技术探索,有效缩短从构思到实现的开发周期。

一、AI 编程的主流方式和选型

IDE 开发工具可分为插件式和 AI 原生两类:插件式工具(如 GitHub Copilot、阿里通义灵码)通过集成到现有 IDE 提供智能补全和代码生成,兼顾开发习惯与效率提升;AI 原生 IDE(如字节 Trae、Cursor、Windsurf)深度整合大模型能力,支持全流程智能化开发。

Cursor 的核心优势在于开箱即用的 AI 能力:原生集成 AI 功能,无需安装插件即可直接使用。它能准确理解代码上下文,提升代码维护与生成效率;支持实时生成/重构代码,加速功能开发;提供智能错误诊断,快速定位问题并给出修复建议。其搭载的 Claude 3.7 模型具备优秀代码生成、问题解决和架构设计能力,能精准解析完整代码库,特别适用于工程项目。通过 Codebase Indexing 索引全量代码文件,清晰解析复杂调用关系;既能结合全局上下文解释特定代码段,也能快速定位目标代码解决问题,在工程场景中表现尤为突出。

在确定 AI 编程工具选型后,工程化落地需要建立与 AI 协作的标准化环境。基于 Cursor 的代码库索引能力,我们设计了具有自解释特征的初始化工程模板。通过标准化工程结构与预置架构规范,使 AI 能精准对齐项目技术语境;借助模板工程的隔离特性,在保证主代码库稳定性的同时,为智能编码工具构建可理解、可验证的沙箱环境。

二、 项目工程中的初始化配置

构建模板项目工程

1、模板工程作为独立开发环境

采用模板项目工程作为 AI 编程的开发项目,做到了隔离的作用。该模板项目通过建立标准化示例工程,提供可验证的代码安全范式——包含功能实现参考样例、技术架构说明文档。开发者可基于此模板工程,借助 AI 编码工具进行隔离式开发,既确保新功能符合安全规范,又能通过标准化结构降低理解成本。


2、基础数据表结构说明

SQL 脚本内置常用基础数据表结构,主要包含高频使用的关联查询表。脚本中明确标注各表之间的关联关系及核心字段说明,便于 AI 快速理解数据结构。


3、公共组件使用指引

针对项目外部公共依赖库,提供模块化使用指南。按功能模块划分说明:工具类集合清单、Redis 操作方法、用户信息获取方法等通用功能的调用方式和规范。


如何编写高效的项目规则

清晰明确: 规则要清晰、明确、易于理解,避免使用模糊或模棱两可的描述。

具体可执行: 规则要具体、可执行,能够指导 AI 生成符合要求的代码。

定期更新: 随着项目的发展和需求的变化,定期更新你的 Cursor Rules。

在 Project Rules 里设置项目级别的专属规则


项目规则的四大关键,提升生成代码的质量          

1、项目背景规范

项目概述:阐明系统核心业务目标与轻量级微服务架构定位

技术架构:采用 SpringBoot+MyBatisPlus + Vue2 + Elementplus 技术体系,集成 Lombok、Hutool、Lodash、Moment 工具链

开发环境:JDK1.8 运行环境,Maven 构建工具,Node18 + Pnpm9 构建环境

2、项目架构规范

工程结构:分层架构细化(controller/service/mapper/entity/MVVM)

模块划分:按业务维度分包(如 user/order/payment),含 API 模块与核心模块分离

公共组件:BaseController、PageUtils、ResultWrapper、DynamicForm、UploadFiles 等可复用工具

3、编码实施规范

代码风格:使用 Lombok 简化代码,异常处理 try...catch,使用 Stream API

命名规则:类名大驼峰(UserService),字段小驼峰(userName),常量全大写(MAX_COUNT)

注释标准:所有函数必须有功能性注释说明及作用

4、数据库设计规范

基础字段:必含 id(雪花算法)、create_by、create_time、update_time、is_deleted(逻辑删除)

字段命名:表字段与 Java 属性严格遵循下划线/驼峰自动映射(user_name→userName)

索引优化:单表索引不超过 5 个,联合索引遵循最左前缀原则

后端(JAVA)项目规则


前端(VUE)项目规则


三、从需求分析到代码生成

需求背景

指产权属于房产公司的物业,合同/协议约定其物业服务费给予优惠收取。

需求描述

1、查询列表:支持按区域、项目、有效期范围、空置收费比例、备案状态等核心字段,并提供查看与终止操作,备案编号按 FCKZ+年月日+4 位随机数生成,状态涵盖未生效/已生效/已失效。

2、新增备案:

基本信息:申请项目、优惠类型(房屋/车位)、优惠范围、合同信息(名称、签订日期)、备注及附件(10 文件/10MB 内)、优惠信息。

3、终止功能:需填写终止原因(合约调整/其他)、生效日期(仅当日或未来)、备注及附件,终止后备案状态变更为已失效。

全流程需确保数据联动性、字段校验及状态流转逻辑严谨。

结构化需求拆解与渐进式人机协作

清晰的需求描述是项目成功的基石,需通过结构化表达(如 Markdown)整合“人设+任务+上下文+案例+方案”等核心要素,为 AI 提供完整背景与逻辑框架,使其能精准协助完善功能描述、技术细节及动态优化,最终构建人机协作的高效闭环,确保需求分析与落地执行的一致性。             

开发复杂功能时,一次性生成太多代码生成易出现偏差,需采用分步引导策略:首先将大功能拆解为模块化任务链(如架构设计→核心逻辑→异常处理),分阶段向 AI 递进描述需求;接着通过“生成基础框架→填充关键代码→补充健壮性要素”的渐进式协作,结合代码解释与问题修正的循环验证,在降低认知负荷的同时,确保代码质量与开发方向的可控性。

建议将复杂需求分解为可执行的任务清单,采用分步推进、边修改边验证的迭代模式。此外,可引导 AI 运用思维链技术进行系统性任务规划,确保执行路径的科学性。


后端接口开发

以下后端接口开发的需求描述:


使用 Cursor 的 Agent 模式,以需求文档作为上下文,和 Cursor 对话,让其完成后端开发,最后完成了包括 API 接口、功能实现和数据库设计:


接着让其继续生成 Markown 格式的接口文档:


按要求生成了标准的接口文档:


AI 完成接口的功能测试

添加控制器到上下文,输入指令,让 AI 生成功能性测试的代码。


创建了集成测试类,使用 MockMvc 测试各个接口的功能。        


前端页面开发

以下前端开发的需求描述:


把相关的文件拖进去,可以令大模型更加精准的回答:


生成之后,运行项目报错了;直接把报错截图粘贴到输入框即可添加到上下文,随后会根据报错信息解决问题, 说明这个错误是由于 Vue 模板中的条件渲染指令使用不正确导致的。



增加一个弹窗组件

在生成的业务模块中,让 Cursor 新增一个弹窗组件,包含以下内容:项目名称输入框,备注文本域,确认和取消按钮,加载状态管理,且同时调用接口服务,Cursor 会扫描整个项目代码,自动创建 api 文件和弹窗组件,同步实现了表单验证和错误处理,实现一个完整的业务模块。


完成项目路由文件优化

项目中的路由文件比较庞大,且采用的是单文件方式,我们可以要求 Cursor 按照路由文件按照业务模块拆分成多个独立单元,这样可以提高代码的可维护性和可读性。

实现的一个效果:1 个文件 26 个路由拆分成 6 个文件,其中包括 1 个主路由以及 5 个业务路由文件。且路由文件由 Cursor 自动创建以及填入路由信息。


最后实现的效果

    通过使用 AI 工具自动生成代码,我们成功实现了多个关键需求。AI 根据给定的提示词,快速生成了 4 个基础页面,5 个接口实现,以及 6 个基础组件依赖,大大节省了开发时间和工作量。同时,针对特定业务需求,还新增了 2 个业务组件,进一步丰富了系统功能。整个开发过程更加高效、精准,为后续的功能扩展和维护打下了坚实的基础。





功能验证

1、列表查询功能确认字段映射准确对应,查询条件与需求文档定义一致,分页逻辑运行正常。

2、动态查询条件可实现数据精准筛选,结果集匹配符合预期。

3、详情查看功能各字段显示内容与数据源保持正确关联。

4、新增功能字段配置完整无误,数据存储流程执行正常。

5、终止操作提交时触发参数校验异常,原因为接口定义的日期格式与前端传输的时间格式不一致。

初步版本已实现需求文档基本功能,针对接口报错问题,根据报错日志快速定位并修复了接口参数日期格式问题。

实践小结

本次需求开发实践中,首先对产品文档进行结构化拆解,明确功能边界与状态流转规则,梳理形成包含 12 个核心字段的数据库模型。完成后端 Spring Boot 业务逻辑(基础增删改查与数据库交互)和前端界面以及数据交互逻辑(含数据校验与双向绑定)。

开发周期中需求分析阶段耗时占比最高,采用"功能模块闭环验证"策略:每个功能点完成接口自测、前后端联调、业务规则核验检查,针对出现的异常(如日期格式冲突)进行定向优化。实践证明,结合 AI 代码生成工具时,开发者更需聚焦于需求结构化表达与核心业务逻辑的精准把控,通过"小步快跑、持续验证"的迭代模式实现工程质量的稳步提升。


四、 项目经历分享

1、快速上手项目有妙招

使用 Agent 模式给你整理出项目的架构图,输出 Mermaid 语法的文本;粘贴到看图文本工具: https://mermaid.live/ ,快速了解项目。


要使用 agent 模式,通过查看项目的结构整理出来架构图: 



复制 Mermaid 代码到在线看图工具可以看到以下效果图;另外,也可以添加项目架构图让 AI 智能分析,可快速理解其设计思路与组件关系。


2、AI 在调试接口返回结构时多次出错

首次错误是请求类已封装返回 data 结构体,但代码仍调用 result.data.records


第一次就可以定位到问题,但是没有正确的解决问题;第二次被告知正确路径应为 result.records,却错误地在外围添加多余的空值判断,未修正核心路径引用问题。这表明 AI 陷入了“死胡同”,无法跳出思维链。

此时,可以通过优化 project rules 增加接口返回数据的示例说明来令 AI 知道接口数据的返回格式。


或者通过提问时候的提示词来解决


3、借助 MCP MySQL Server 生成接口指定信息的入参示例

添加一个 MCP Servers,替换正确的数据库配置信息

{  "mcpServers": {    "mysql": {      "command": "npx",      "args": ["-y", "@f4ww4z/mcp-mysql-server"],      "env": {        "MYSQL_HOST": "your_host",        "MYSQL_USER": "your_user",        "MYSQL_PASSWORD": "your_password",        "MYSQL_DATABASE": "your_database"      }    }  }}
复制代码

新建一个终端启动 MCP Servers,随即开启并刷新一下,就看到小绿色点,说明 MCP Servers 已经启动成功了。

npx -y @f4ww4z/mcp-mysql-server
复制代码



给新增接口创建一些示例数据,要指定的项目数据:


可以看到会先调用 MCP tool 查询到指定的两个项目信息,然后拿到项目 ID 作为入参生成了完整的接口入参示例。


4、生成前端单元测试

使用 AI 生成前端单元测试是一大优势,它可以直接结合你已有的函数或组件逻辑,自动生成 Jest、Vitest、Testing Library 等测试代码,大大节省你手写测试的时间。

原函数

export function sum(a: number, b: number): number {  return a + b;}
复制代码

AI 自动生成

// utils.test.tsimport { sum } from './utils';describe('sum', () => {  it('should return correct sum of two numbers', () => {    expect(sum(1, 2)).toBe(3);    expect(sum(-1, -1)).toBe(-2);    expect(sum(0, 0)).toBe(0);  });}); 
复制代码

5、设计图生成前端代码

AI 可以通过分析设计图并生成响应式布局代码,减少开发者的工作量。下面是一个通过 AI 实现设计图生成代码的示例流程和生成的代码示例。

1. 设计图:上传或插入设计图(例如,Figma、Sketch 或 PNG 图片)。

2. AI 识别:AI 会分析设计图的结构,识别出表单、按钮、文本框等元素。

3. 输出代码:AI 根据设计图内容生成 HTML、CSS 或框架代码(如 Vue、React)。

4. 优化与反馈:开发者可以根据项目需求调整生成的代码,进一步优化样式或功能。


6、上下文优化策略

适当添加相关文件至对话上下文可显著提升 AI 任务完成质量,但需注意控制文件数量,仅提供核心文件即可。过量文件输入反而可能干扰 AI 的重点识别能力。


五、结语

在应用 Cursor 等智能工具时,建议采用"指挥官-执行者"协作范式而非放任自治。开发者需构建完整的系统认知框架,明确功能模块划分标准与交互协议,将 AI 定位为精准的代码实施单元。软件工程本质是架构设计与代码实现的复合体,应引导 AI 承担后者而非前者。建议建立结构化需求文档作为"数字契约",确保 AI 的每次迭代都遵循既定设计规范。对话交互宜聚焦文档索引与规范调用,避免在开放式会话中定义核心需求。


本文作者:

蔡冠怡:碧桂园服务后端开发高级工程师

邓涛:碧桂园服务前端开发专家

指导人:

余俭:碧桂园服务技术总监

简洪胜:碧桂园服务技术专家

 

发布于: 刚刚阅读数: 6
用户头像

智在碧得

关注

碧桂园服务科技研发中心官方账号 2024-04-08 加入

科创驱动智慧未来!碧桂园服务的创新引擎,物业数字化的开路先锋

评论

发布
暂无评论
AI编程在BOSS项目的实践经验分享_AI_智在碧得_InfoQ写作社区