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、ResultWrapperDynamicForm、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.ts
import { 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的每次迭代都遵循既定设计规范。对话交互宜聚焦文档索引与规范调用,避免在开放式会话中定义核心需求。

本文作者:

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

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

指导人:

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM 类加载器 详解

类加载器 两个类来源于同一个 Class文件,被同一个Java虚拟机加载,只要加载它们的类加载器不同,那这两个类就必定不相等 这里所指的“相等”,包括代表类的Class对象的equals()方法、isAssignableFrom()方法、isInstance()方法的返…

Javascript 编程基础(5)面向对象 | 5.1、构造函数实例化对象

文章目录 一、构造函数实例化对象1、基本语法2、构造函数与原型的关系3、完整的原型链4、构造函数的特点5、prototype与__proto__属性5.1、对象实例的__proto__属性5.2、prototype属性仅存在于函数对象5.3、实例与原型的关系5.4、获取对象原型 6、注意事项 前言: 在…

自动驾驶科普(百度Apollo)学习笔记

1. 写在前面 在过去的几年里,自动驾驶技术取得飞速发展,人类社会正逐渐走向一个新时代,这个时代中,汽车不仅仅是一个交通工具,更是一个智能的、能够感知环境、做出决策并自主导航的机器伙伴。现在正好也从事这块的工作…

Windows应用-音视频捕获

下载“Windows应用-音视频捕获”项目 本应用可以同时捕获4个视频源和4个音频源,可以监视视频源图像,监听音频源;可以将视频源图像写入MP4文件,将音频源写入MP3或WAV文件;还可以录制系统播放的声音。本应用使用MFC对话框…

MATLAB生成大规模无线通信网络拓扑(任意节点数量)

功能: 生成任意节点数量的网络拓扑,符合现实世界节点空间分布和连接规律 效果: 30节点: 100节点: 500节点: 程序: %创建时间:2025年6月8日 %zhouzhichao %自然生长出n节点的网络% …

TDengine 开发指南—— UDF函数

UDF 简介 在某些应用场景中,应用逻辑需要的查询功能无法直接使用内置函数来实现,TDengine 允许编写用户自定义函数(UDF),以便解决特殊应用场景中的使用需求。UDF 在集群中注册成功后,可以像系统内置函数一…

C#提取CAN ASC文件时间戳:实现与性能优化

C#提取CAN ASC文件时间戳:实现与性能优化 在汽车电子和工业控制领域,CAN总线是最常用的通信协议之一。而ASC(ASCII)文件作为CAN总线数据的标准日志格式,广泛应用于数据记录和分析场景。本文将深入探讨如何高效地从CAN…

计算机网络基础总结:TCP/IP 模型、TCP vs UDP、DNS 查询过程

在学习计算机网络的过程中,理解 TCP/IP 模型与 OSI 模型的对应关系、掌握 TCP 与 UDP 的区别,以及熟悉 DNS 的查询过程,是打好网络基础的关键。本文将围绕这三部分进行简明扼要的讲解。 一、TCP/IP 模型与 OSI 七层模型的对应关系 1. OSI 七…

基于PHP的扎染文创产品商城

有需要请加文章底部Q哦 可远程调试 基于PHP的扎染文创产品商城 一 介绍 扎染文创产品商城系统基于原生PHP开发,数据库mysql,前端bootstrap,jquery.js等。系统角色分为用户和管理员。 技术栈:phpmysqlbootstrapphpstudyvscode 二…

数据库学习(三)——MySQL锁

一、MySQL锁 当多个用户或进程并发操作数据库时,为了避免数据冲突、脏读、不可重复读、幻读等问题,数据库通过锁机制来保证数据的一致性和完整性。 MySQL 锁的总体分类: 分类维度类型说明按作用对象表级锁(Table Lock&#xff…

<3>-MySQL表的操作

目录 一,创建表 二,查看表结构 三,修改表 四,删除表 一,创建表 语法: CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 eng…

【OSG学习笔记】Day 15: 路径动画与相机漫游

本章来学习下漫游相机。 路径动画与相机漫游 本届内容比较简单,其实就是实现物体的运动和相机的运动 当然这两个要一起执行。 贝塞尔曲线 贝塞尔曲线(Bzier curve)是一种在计算机图形学、动画制作、工业设计等领域广泛应用的参数曲线&am…

LabVIEW自感现象远程实验平台

LabVIEW开发自感现象远程实验平台,通过整合 NI数据采集设备、菲尼克斯(Phoenix Contact)继电器模块及罗技(Logitech)高清摄像头,实现远程数据采集、仪器控制与实时监控三大核心功能。平台突破传统实验装置局…

数据结构——F/图

一、图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构&#xff1a;G (V&#xff0c; E)&#xff0c;其中&#xff1a; 顶点集合V {x|x属于某个数据对象集}是有穷非空集合&#xff1b; E {(x,y)|x,y属于V}或者E {<x, y>|x,y属于V && Path(x, y)…

springcloud openfeign 偶现 Caused by: java.net.UnknownHostException

背景 最近查看日志发现某服务偶现Caused by: java.net.UnknownHostException 同时查看eureka的access.log 出现如下异常 10.xxx.xxx.xxx - - [27/May/2025:23:57:29 0800] “PUT /eureka/apps/{appName}/{host}:xxx-job:8082?statusUP&lastDirtyTimestamp1748351637173 H…

第12篇:数据库中间件日志设计与追踪系统落地实践

12.1 引言&#xff1a;中间件日志系统为何如此关键&#xff1f; 数据库中间件作为连接前端应用与后端数据库的“网关”&#xff0c;承载着路由、负载均衡、SQL 改写、权限控制等复杂逻辑。 在出现 性能问题、故障排查、安全审计 等场景中&#xff0c;若没有完善的日志体系&am…

OpenAI对抗法庭命令:捍卫ChatGPT用户隐私之战

人工智能公司OpenAI近期正积极对抗一项涉及隐私问题的法庭命令。该命令要求OpenAI保留所有ChatGPT用户日志&#xff0c;包括已删除的对话记录以及通过API调用生成的聊天内容。 命令背后的真实动机 值得注意的是&#xff0c;法院发布这一指令并非出于对用户隐私或内容安全的考…

嵌入式学习--江协stm32day5

USART 1. 引脚与接口层 异步引脚&#xff1a; TX&#xff1a;发送数据输出&#xff1b;RX&#xff1a;接收数据输入&#xff1b;SW_RX&#xff1a;单线半双工模式的接收引脚&#xff08;替代 RX&#xff09;。 同步引脚&#xff1a;SCLK&#xff1a;同步模式下的时钟输出&…

使用Fiddler抓包

有时候需要跟踪一些小程序的HTTP请求&#xff0c;但是无法像浏览器一样F12查看请求&#xff0c;因此需要借助其他的工具进行&#xff0c;在这里推荐使用Fiddler 配置 此时检查系统代理已经变成如下配置&#xff1a; 抓包 此时随便打开一个小程序&#xff0c;就可以进行抓包…

python学习打卡day47

DAY 47 注意力热图可视化 昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 # 可视化空间注意力热力图&#xff08;显示模型关注的图像区域&#xff09; def visualize_attention_map(model, test_loader,…