Skip to content

AI编程实践

概述

本文档介绍如何基于 TRAE CN 构建完整的AI编程工作流,涵盖从项目初始化到测试部署的全流程实践指南。


第一章:AI编程工具链

1.1 工具链全景图

1.2 核心工具定位

阶段核心工具辅助工具
需求分析TRAE CNXMind、ProcessOn
项目初始化TRAE CN + 脚手架Spring Initializr
代码编写TRAE CNIDE插件、代码库
测试验证TRAE CNJUnit、Postman
部署运维TRAE CNDocker、K8s

1.3 工具选择策略

根据团队技术栈选择

技术栈推荐AI工具理由
Java/SpringTRAE CN + 通义灵码Spring生态支持好
Python/DjangoTRAE CN + CodeiumPython支持优秀
前端Vue/ReactTRAE CN全栈支持
GoTRAE CNGo语言支持

根据项目类型选择

项目类型工具组合侧重点
企业管理系统TRAE CN + 文心一言代码生成 + 中文理解
互联网应用TRAE CN快速迭代
嵌入式项目TRAE CN代码优化
数据分析TRAE CN + 讯飞星火知识问答 + 编程

第二章:项目初始化

2.1 技术栈确定

AI辅助技术选型流程

提示词模板

提示词:
请为以下项目需求提供技术选型建议:

项目描述:【项目需求描述】
性能要求:【性能指标】
团队技术栈:【现有技术栈】
团队规模:【团队规模】

请输出:
1. 推荐的技术栈组合
2. 各技术选型的理由
3. 关键技术指标估算

2.2 脚手架生成

Maven多模块项目初始化

提示词:
请生成一个Maven多模块项目脚手架,结构如下:

父工程:shrimp-demo
├── module-common(公共模块)
│   └── 依赖:Spring Boot Starter
├── module-dao(数据访问层)
│   └── 依赖:MyBatis-Plus、module-common
├── module-service(业务逻辑层)
│   └── 依赖:module-dao、module-common
└── module-api(接口层)
    └── 依赖:module-service

要求:
1. 使用Spring Boot 3.2
2. Java版本17
3. 统一版本管理
4. 生成pom.xml文件

Spring Boot单体项目初始化

提示词:
请生成一个Spring Boot项目脚手架:

项目信息:
- 项目名:user-center
- 包名:com.example.usercenter
- Spring Boot版本:3.2.0

功能模块:
- 用户管理(CRUD)
- 角色管理(CRUD)
- 权限管理(CRUD)

技术栈:
- Spring Boot Web
- MyBatis-Plus
- Redis
- JWT
- Spring Security

请生成:
1. pom.xml依赖配置
2. application.yml配置
3. 主启动类
4. 基本项目结构

2.3 开发环境配置

IDE配置

提示词:
请为Spring Boot项目生成IDE配置文件:

1. .editorconfig(代码风格配置)
2. .gitignore(Git忽略配置)
3. lombok.config(Lombok配置)

要求:
- Java代码风格
- 缩进4空格
- 编码UTF-8

代码规范配置

提示词:
请生成阿里巴巴代码规范检查配置:

1. p3c-checkstyle配置
2. SpotBugs配置
3. SonarQube规则集

适用于Spring Boot 3.x项目

第三章:需求分析

3.1 需求解析

自然语言转技术需求

提示词模板

提示词:
请分析以下需求,输出技术规格说明书:

需求描述:
【粘贴需求文档】

请输出:
1. **功能列表** - 分解后的功能点
2. **数据模型** - 涉及的实体和关系
3. **API接口清单** - RESTful接口设计
4. **业务流程** - 核心业务流描述
5. **非功能需求** - 性能、安全、可用性要求

要求:用技术语言描述,便于开发人员理解

3.2 技术方案设计

数据模型推导

提示词:
请根据以下需求推导数据模型:

业务需求:
【业务需求描述】

请输出:
1. **实体清单** - 所有业务实体
2. **字段设计** - 每个实体的字段、类型、约束
3. **关系图** - 实体之间的关系(1:1, 1:N, N:N)
4. **ER图** - 完整的ER图描述

示例格式:
CREATE TABLE table_name (
    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
    field_name VARCHAR(50) NOT NULL UNIQUE COMMENT '字段说明'
);

API设计

提示词:
请为以下业务功能设计RESTful API:

业务模块:用户管理

功能点:
1. 用户注册
2. 用户登录
3. 获取用户信息
4. 更新用户信息
5. 修改密码
6. 注销用户

请输出:
1. **接口清单** - 路径、方法、说明
2. **请求格式** - 请求参数、Header
3. **响应格式** - 成功/失败响应结构
4. **状态码定义** - HTTP状态码使用规范

示例格式:
POST /api/users/register
Request: { username, password, email }
Response: { code, message, data: { userId, token } }

3.3 任务拆分

Epic/Story拆分

提示词:
请将以下Epic拆分成Story,并估算工作量:

Epic:用户管理模块

Epic描述:
【Epic详细描述】

团队速度:【团队每个Sprint可完成的Story点数】

请输出:
1. **Story清单** - 每个Story的名称、描述、验收标准
2. **工作量估算** - 每个Story的点数
3. **Sprint规划** - 如何分配到Sprint

格式:
| Story ID | Story名称 | 描述 | 验收标准 | 估算点数 |

第四章:代码编写

4.1 代码生成

根据数据模型生成代码

提示词:
请根据以下数据表生成完整的CRUD代码:

表名:sys_user
字段:
CREATE TABLE sys_user (
    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
    username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
    password VARCHAR(100) NOT NULL COMMENT '密码(加密存储)',
    email VARCHAR(100) COMMENT '邮箱',
    phone VARCHAR(20) COMMENT '手机号',
    status TINYINT DEFAULT 1 COMMENT '状态:1启用 0禁用',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_time DATETIME ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
);

请生成:
1. **UserEntity.java** - 实体类
2. **UserMapper.java** - Mapper接口
3. **UserService.java** - Service接口
4. **UserServiceImpl.java** - Service实现
5. **UserController.java** - Controller
6. **DTOs** - 请求/响应对象
7. **Mapper XML** - MyBatis XML

要求:使用MyBatis-Plus、Lombok、Spring Boot 3.x

根据API设计生成代码

提示词:
请根据以下API设计生成Controller代码:

POST /api/users/register
Request:
  username: string (required, 4-20 chars)
  password: string (required, 6-20 chars)
  email: string (required, valid email)
Response:
  code: int
  message: string
  data:
    userId: long
    token: string

请生成:
1. UserCreateRequest.java
2. UserRegisterResponse.java
3. UserController.java(含REST接口实现)

要求:使用Spring Boot 3.x、validation注解

4.2 代码优化

性能优化

提示词:
请分析并优化以下代码的性能问题:

代码:
public List<OrderVO> getOrdersByUserId(Long userId) {
    List<OrderEntity> orders = orderMapper.selectByUserId(userId);
    List<OrderVO> result = new ArrayList<>();

    for (OrderEntity order : orders) {
        ProductEntity product = productMapper.selectById(order.getProductId());
        UserEntity user = userMapper.selectById(order.getUserId());
        OrderVO vo = convertToVO(order, product, user);
        result.add(vo);
    }
    return result;
}

问题:N+1查询问题

请优化为批量查询,减少数据库访问次数

代码重构

提示词:
请重构以下代码,使用设计模式优化:

代码:
public class PaymentService {
    public void pay(String type, BigDecimal amount) {
        if ("alipay".equals(type)) {
            // 支付宝支付逻辑
        } else if ("wechat".equals(type)) {
            // 微信支付逻辑
        } else if ("bank".equals(type)) {
            // 银行卡支付逻辑
        }
    }
}

请重构为策略模式+工厂模式

4.3 代码审查

AI辅助代码审查要点

代码审查提示词

提示词:
请审查以下代码,从多个维度指出问题:

代码:
【粘贴代码】

审查维度:
1. 业务逻辑正确性
2. 代码质量问题
3. 安全漏洞
4. 性能问题
5. 扩展性建议

请逐条列出发现的问题,并给出修复建议

第五章:测试实践

5.1 单元测试

测试用例生成

提示词:
请为以下Service方法生成JUnit 5单元测试:

代码:
public class UserService {
    private final UserMapper userMapper;

    public User createUser(UserCreateRequest request) {
        // 参数校验
        if (StringUtils.isBlank(request.getUsername())) {
            throw new IllegalArgumentException("用户名不能为空");
        }
        if (StringUtils.isBlank(request.getPassword())) {
            throw new IllegalArgumentException("密码不能为空");
        }
        if (userMapper.existsByUsername(request.getUsername())) {
            throw new BusinessException("用户名已存在");
        }

        // 创建用户
        UserEntity entity = new UserEntity();
        entity.setUsername(request.getUsername());
        entity.setPassword(passwordEncoder.encode(request.getPassword()));
        entity.setEmail(request.getEmail());
        entity.setStatus(1);
        userMapper.insert(entity);

        return convertToUser(entity);
    }
}

请生成:
1. 使用JUnit 5 + Mockito
2. 覆盖正常场景
3. 覆盖异常场景(参数为空、用户名重复等)
4. 使用@DisplayName标注测试用例

边界条件测试

提示词:
请为以下方法设计边界条件测试用例:

方法:
public int calculateDiscount(BigDecimal price, BigDecimal discountRate) {
    if (price == null || price.compareTo(BigDecimal.ZERO) < 0) {
        throw new IllegalArgumentException("价格无效");
    }
    if (discountRate == null || discountRate.compareTo(BigDecimal.ZERO) < 0
        || discountRate.compareTo(BigDecimal.ONE) > 0) {
        throw new IllegalArgumentException("折扣率无效");
    }
    return price.multiply(discountRate).intValue();
}

请设计边界条件测试用例,覆盖:
1. 正常折扣率(0 < rate < 1)
2. 边界折扣率(rate = 0, rate = 1)
3. 无效折扣率(rate < 0, rate > 1)
4. 边界价格(price = 0, price = MAX)
5. 空值情况

5.2 集成测试

接口测试生成

提示词:
请为以下Controller生成SpringBootTest集成测试:

Controller:
@RestController
@RequestMapping("/api/users")
public class UserController {
    private final UserService userService;

    @PostMapping("/register")
    public ResponseEntity<Response<UserVO>> register(@Valid @RequestBody UserCreateRequest request) {
        UserVO user = userService.createUser(request);
        return ResponseEntity.ok(Response.success(user));
    }

    @GetMapping("/{id}")
    public ResponseEntity<Response<UserVO>> getUser(@PathVariable Long id) {
        UserVO user = userService.getUserById(id);
        return ResponseEntity.ok(Response.success(user));
    }
}

请生成:
1. @SpringBootTest集成测试
2. 使用MockMvc进行HTTP测试
3. 使用@TestConfiguration注入Mock Bean
4. 测试正常场景和异常场景

5.3 测试覆盖率

覆盖率分析提示词

提示词:
请分析以下代码的测试覆盖情况,并给出补充建议:

代码文件列表:
1. UserService.java
2. OrderService.java
3. PaymentService.java

请输出:
1. 当前测试覆盖情况分析
2. 未覆盖的代码路径
3. 补充测试用例建议
4. 测试数据建议

第六章:技能地图

6.1 提示词技能

基础语法

技能说明示例
角色设定指定AI扮演的角色"请作为资深Java架构师"
明确任务清晰说明要做什么"生成用户CRUD代码"
提供上下文给出必要的背景"使用Spring Boot 3.2"
指定格式说明期望的输出格式"输出JSON格式"
设定约束明确限制条件"代码不超过100行"

进阶技巧

技巧说明示例
分步骤复杂任务分解"第一步...第二步..."
提供示例给出参考模板"类似XXX这样实现"
迭代优化逐步完善结果"在基础上添加XXX"
指定风格明确代码风格"遵循阿里巴巴规范"
要求解释同时输出说明"附带代码解释"

场景模板库

模板1:代码生成

提示词:
请使用【技术栈】为【业务场景】生成【输出类型】:

技术栈:【如Spring Boot 3.2 + MyBatis-Plus】
业务场景:【如用户管理模块的CRUD功能】
输出类型:【如Controller、Service、Entity等】

具体要求:
1. 【要求1】
2. 【要求2】
3. 【要求3】

模板2:错误排查

提示词:
请分析以下错误并提供修复方案:

错误类型:【如NullPointerException】
错误信息:【错误堆栈或描述】
相关代码:【相关代码片段】

请输出:
1. 问题根因分析
2. 修复代码
3. 预防建议

模板3:代码审查

提示词:
请审查以下代码,重点关注【审查维度】:

代码:
【代码内容】

审查维度:
1. 【维度1】
2. 【维度2】
3. 【维度3】

请逐条列出问题和修复建议

6.2 AI协作技能

上下文管理

技能说明实践
会话保持在同一会话中连续对话问题之间建立上下文联系
信息传递重要信息在前置对话中说明避免重复说明相同背景
范围界定明确当前讨论的范围使用"当前模块"等限定词
状态追踪记录已完成的工作对话开头简要说明进度

迭代优化方法

结果验证方法

验证类型方法说明
编译验证在IDE中编译检查确保语法正确
单元测试运行生成代码的测试验证逻辑正确
代码审查AI或人工审查确保质量达标
文档对照与需求文档对比确保功能完整

6.3 质量保障技能

代码质量评估维度

AI辅助质量检查清单

  • [ ] 正确性:业务逻辑是否正确实现
  • [ ] 完整性:所有需求是否覆盖
  • [ ] 边界处理:异常输入是否处理
  • [ ] 安全性:是否有安全漏洞
  • [ ] 性能:是否有性能问题
  • [ ] 可读性:代码是否清晰易懂
  • [ ] 可维护性:是否易于修改扩展
  • [ ] 测试覆盖:核心逻辑是否测试

附录:开发流程全景图

总结

基于 TRAE CN 的AI编程实践,核心在于:

  1. 工具链协同 - 选择合适的AI工具组合,全流程覆盖
  2. 流程标准化 - 建立从需求到部署的标准工作流
  3. 提示词工程 - 掌握提示词技巧,提高交互效率
  4. 质量保障 - AI辅助+人工审查,确保代码质量
  5. 持续迭代 - 不断优化提示词和工作流程

通过系统化的AI编程实践,团队可以显著提升开发效率,将更多精力投入到业务创新和架构优化中。

Released under the MIT License.