7大AI coding场景,各模型评测实践

申明:本内容为26年2月初实践,现在各家模型均有新版发布,比如kimi2.6,GLM5.1,Opus4.7等,生成效果上也有差异,但团队内做的评测内容和方法论永不过时,思虑再三,还是发出来,供大家参阅。
整体结论:
1、优秀的Agent+优秀的LLM==AI Coding最优解。
2、规划类plan任务 使用好的模型,生成执行类任务可搭配便宜点模型。
3、Agent/工具 的效果>LLM本身模型差距。
当时评测结果:
1、claude+opus4.5 表现最优,所有测试场景结果全部一次性通过
2、claude+kimi2.5、kimiAgent+kimi2.5:中规中矩,kimiAgent能力眼前一亮
3、claude+glm4.7:整体表现一般,不尽人意的地方较多
4、claude+glm5:生成的结果明显好于4.7,最直观的感受是所有结果全部一把过
对比维度
|
agent |
llm |
综合表现(满分10分) |
备注说明 |
|---|---|---|---|
|
claude |
opus4.5 |
9分 |
仅缺少分页实现,一把过概率最高 |
|
claude |
glm5 |
8分 |
生成速度比glm4.7慢了50%以上,费用是4.7的3倍 |
|
claude |
kimi2.5 |
7分 |
MyBatis-Plus 未真正使用、无分页 |
|
claude |
glm4.7 |
5分 |
无 MyBatis-Plus、职责混杂 |
|
kimi |
kimi2.5 |
6分 |
与claude_kimi2.5效果略逊一筹,超越了trae+kimi2.5 |
同agent下—不同模型测试结果对比
|
测试维度 |
|
|
|
|
|---|---|---|---|---|
|
基础功能用例 |
❌ 不通过 |
❌ 不通过 |
⚠️ 需修改 |
✅ 通过 |
|
编码规范性用例 |
⚠️ 需修改 |
⚠️ 需修改 |
✅ 通过 |
✅ 通过 |
|
参数校验 & 边界场景 |
⚠️ 需修改 |
❌ 不通过 |
⚠️ 需修改 |
⚠️ 需修改 |
|
异常 & 资源处理 |
✅ 通过 |
⚠️ 需修改 |
✅ 通过 |
✅ 通过 |
|
工程化能力用例 |
❌ 不通过 |
❌ 不通过 |
⚠️ 需修改 |
⚠️ 需修改 |
|
综合能力用例 |
❌ 不通过 |
❌ 不通过 |
⚠️ 需修改 |
⚠️ 需修改 |
|
综合评比 |
2/6 |
1/6 |
4/6 |
5/6 |
7大研发场景测试案例:
专项 1:初始化工程(springboot+jdk21+api接口+html页面)
专项 2:基础语法 + 集合 + Stream 流处理(验证基础编码能力)
专项 3:面向对象 + 多态 + 异常处理(验证 OOP 与异常能力)
专项 4:IO 流 + 资源管理 + 序列化(验证工程化 IO 能力)
专项 5:多线程 + 线程池 + 线程安全(验证并发编程能力)
专项 6:Spring Boot 轻量框架开发(验证企业级框架能力)
专项 7:生成es对接service(房产AI特征库真实业务编码使用)
各级详细指标打分
各阶段案例描述:
从创建初始化项目->到各种大段生成类型的编程需求
通用基础 Prompt 模板(所有验证用例统一前缀)
你是一名资深Java后端开发工程师,精通JDK8+语法、Java面向对象设计、常用集合框架、IO流、多线程及Spring Boot轻量框架开发,具备扎实的工程化编码规范和错误处理能力。
请针对以下需求完成Java代码开发,要求:
1. 代码符合阿里巴巴Java开发手册规范,命名规范(类大驼峰、方法/变量小驼峰、常量全大写下划线分隔);
2. 具备完整的异常处理,避免空指针、数组越界等常见运行时异常;
3. 关键代码添加清晰的单行注释,核心业务逻辑添加块注释;
4. 提供可直接运行的完整代码(包含主类/主方法,框架类需求提供可启动项目结构+核心代码);
5. 若涉及IO、多线程等资源操作,必须保证资源正确释放、线程安全;
6. 无需多余解释,先给出完整可运行代码,再补充100字内的核心实现说明。
【需求】:{此处替换为后续具体验证需求}
专项 1:初始化工程
你是一名资深Java后端开发工程师,精通JDK8+语法、Java面向对象设计、常用集合框架、IO流、多线程及Spring Boot轻量框架开发,具备扎实的工程化编码规范和错误处理能力。
请针对以下需求完成Java代码开发,要求:
1. 代码符合阿里巴巴Java开发手册规范,命名规范(类大驼峰、方法/变量小驼峰、常量全大写下划线分隔);
2. 具备完整的异常处理,避免空指针、数组越界等常见运行时异常;
3. 关键代码添加清晰的单行注释,核心业务逻辑添加块注释;
4. 提供可直接运行的完整代码(包含主类/主方法,框架类需求提供可启动项目结构+核心代码);
5. 若涉及IO、多线程等资源操作,必须保证资源正确释放、线程安全;
6. 无需多余解释,先给出完整可运行代码,再补充100字内的核心实现说明。
【需求】:实现一个Java程序,完成以下功能:
创建一个springboot3+jdk21的工程,名称为springboot-demo并进行初始化操作,要求包含必要的配置文件,以及demo演示用的web页面+api接口,给出完整可运行工程代码,不能有编译及运行报错。
专项 2:基础语法 + 集合 + Stream 流处理(验证基础编码能力)
你是一名资深Java后端开发工程师,精通JDK8+语法、Java面向对象设计、常用集合框架、IO流、多线程及Spring Boot轻量框架开发,具备扎实的工程化编码规范和错误处理能力。
请针对以下需求完成Java代码开发,要求:
1. 代码符合阿里巴巴Java开发手册规范,命名规范(类大驼峰、方法/变量小驼峰、常量全大写下划线分隔);
2. 具备完整的异常处理,避免空指针、数组越界等常见运行时异常;
3. 关键代码添加清晰的单行注释,核心业务逻辑添加块注释;
4. 提供可直接运行的完整代码(包含主类/主方法,框架类需求提供可启动项目结构+核心代码);
5. 若涉及IO、多线程等资源操作,必须保证资源正确释放、线程安全;
6. 无需多余解释,先给出完整可运行代码,再补充100字内的核心实现说明。
【需求】:实现一个Java程序,完成以下功能:
1. 定义一个学生类(Student),包含属性:id(Long,主键)、name(String,姓名)、age(Integer,年龄)、score(Double,成绩)、className(String,班级),提供全参/无参构造、get/set方法、toString方法;
2. 初始化一个包含8个学生的List<Student>集合,包含不同班级、年龄(18-22岁)、成绩(60-98分),部分学生成绩为80分以上;
3. 使用Stream流完成3个操作:① 筛选出成绩≥80分的学生,按成绩降序排序;② 按班级分组,统计每个班级的学生人数;③ 计算所有学生的平均成绩(保留2位小数);
4. 在主方法中调用上述逻辑,打印所有处理结果;
5. 避免空指针,若集合为空/无符合条件数据,给出友好提示。
请直接新增或修改工程内文件内容。
专项 3:面向对象 + 多态 + 异常处理(验证 OOP 与异常能力)
你是一名资深Java后端开发工程师,精通JDK8+语法、Java面向对象设计、常用集合框架、IO流、多线程及Spring Boot轻量框架开发,具备扎实的工程化编码规范和错误处理能力。
请针对以下需求完成Java代码开发,要求:
1. 代码符合阿里巴巴Java开发手册规范,命名规范(类大驼峰、方法/变量小驼峰、常量全大写下划线分隔);
2. 具备完整的异常处理,避免空指针、数组越界等常见运行时异常;
3. 关键代码添加清晰的单行注释,核心业务逻辑添加块注释;
4. 提供可直接运行的完整代码(包含主类/主方法,框架类需求提供可启动项目结构+核心代码);
5. 若涉及IO、多线程等资源操作,必须保证资源正确释放、线程安全;
6. 无需多余解释,先给出完整可运行代码,再补充100字内的核心实现说明。
【需求】:基于Java面向对象思想,实现一个简单的图形计算框架,要求:
1. 定义抽象父类(Shape),包含抽象方法:getArea()(计算面积,返回Double)、getPerimeter()(计算周长,返回Double);
2. 实现3个子类:圆形(Circle,属性:radius半径)、矩形(Rectangle,属性:width宽、height高)、三角形(Triangle,属性:a/b/c三边);
3. 所有子类重写抽象方法,三角形需先校验三边合法性(任意两边之和大于第三边),不合法则抛出自定义异常(IllegalTriangleException,继承RuntimeException);
4. 定义工具类(ShapeUtil),提供静态方法:printShapeInfo(Shape shape),打印图形类型、面积、周长,方法内捕获所有可能的异常并给出提示;
5. 在主方法中创建不同图形实例(包含非法三角形),调用工具类方法,验证多态和异常处理逻辑。
请直接新增或修改工程内文件内容。
专项 4:IO 流 + 资源管理 + 序列化(验证工程化 IO 能力)
你是一名资深Java后端开发工程师,精通JDK8+语法、Java面向对象设计、常用集合框架、IO流、多线程及Spring Boot轻量框架开发,具备扎实的工程化编码规范和错误处理能力。
请针对以下需求完成Java代码开发,要求:
1. 代码符合阿里巴巴Java开发手册规范,命名规范(类大驼峰、方法/变量小驼峰、常量全大写下划线分隔);
2. 具备完整的异常处理,避免空指针、数组越界等常见运行时异常;
3. 关键代码添加清晰的单行注释,核心业务逻辑添加块注释;
4. 提供可直接运行的完整代码(包含主类/主方法,框架类需求提供可启动项目结构+核心代码);
5. 若涉及IO、多线程等资源操作,必须保证资源正确释放、线程安全;
6. 无需多余解释,先给出完整可运行代码,再补充100字内的核心实现说明。
【需求】:实现一个Java程序,完成对象的序列化与反序列化,以及文件的读写操作,要求:
1. 定义一个用户类(User),包含属性:id(Long)、username(String)、password(String)、createTime(LocalDateTime),实现Serializable接口,保证序列化兼容性(添加serialVersionUID),提供全参构造、get/set/toString方法;
2. 实现2个核心方法:① serializeUser(User user, String filePath):将User对象序列化到指定本地文件,使用对象输出流(ObjectOutputStream);② deserializeUser(String filePath):从指定文件反序列化得到User对象,返回User实例;
3. 补充方法:readFileToString(String filePath):使用字符缓冲流(BufferedReader)读取文本文件内容,返回字符串;
4. 所有IO操作必须使用try-with-resources语法,自动释放流资源,避免资源泄漏;
5. 处理所有可能的异常(文件不存在、流异常、序列化异常等),给出具体的异常提示;
6. 在主方法中测试:序列化一个User对象到本地文件→反序列化该文件得到对象并打印→读取一个本地文本文件(自定义内容)并打印内容。
请直接新增或修改工程内文件内容。
专项 5:多线程 + 线程池 + 线程安全(验证并发编程能力)
你是一名资深Java后端开发工程师,精通JDK8+语法、Java面向对象设计、常用集合框架、IO流、多线程及Spring Boot轻量框架开发,具备扎实的工程化编码规范和错误处理能力。
请针对以下需求完成Java代码开发,要求:
1. 代码符合阿里巴巴Java开发手册规范,命名规范(类大驼峰、方法/变量小驼峰、常量全大写下划线分隔);
2. 具备完整的异常处理,避免空指针、数组越界等常见运行时异常;
3. 关键代码添加清晰的单行注释,核心业务逻辑添加块注释;
4. 提供可直接运行的完整代码(包含主类/主方法,框架类需求提供可启动项目结构+核心代码);
5. 若涉及IO、多线程等资源操作,必须保证资源正确释放、线程安全;
6. 无需多余解释,先给出完整可运行代码,再补充100字内的核心实现说明。
【需求】:实现一个Java多线程程序,模拟电商平台商品库存扣减场景,要求:
1. 定义商品库存类(ProductStock),包含属性:productId(Long)、stockNum(Integer,库存数量),提供扣减库存方法(deductStock(Integer num),扣减指定数量库存);
2. 保证库存扣减的线程安全,避免超卖(库存不能为负数,多个线程同时扣减时数据一致);
3. 使用JDK8+的ThreadPoolExecutor手动创建线程池(核心线程数5,最大线程数10,等待队列100,存活时间60s,任务拒绝策略为AbortPolicy),不使用Executors工具类;
4. 初始化库存为100件,创建50个线程任务,每个任务随机扣减1-3件库存;
5. 所有任务执行完成后,打印最终库存数量,验证无超卖、数据一致;
6. 线程池使用完成后必须正确关闭,处理任务执行中的异常,避免线程泄漏。
请直接新增或修改工程内文件内容。
专项 6:Spring Boot 轻量框架开发(验证企业级框架能力)
你是一名资深Java后端开发工程师,精通JDK8+语法、Java面向对象设计、常用集合框架、IO流、多线程及Spring Boot轻量框架开发,具备扎实的工程化编码规范和错误处理能力。
请针对以下需求完成Java代码开发,要求:
1. 代码符合阿里巴巴Java开发手册规范,命名规范(类大驼峰、方法/变量小驼峰、常量全大写下划线分隔);
2. 具备完整的异常处理,避免空指针、数组越界等常见运行时异常;
3. 关键代码添加清晰的单行注释,核心业务逻辑添加块注释;
4. 提供可直接运行的完整代码(包含主类/主方法,框架类需求提供可启动项目结构+核心代码);
5. 若涉及IO、多线程等资源操作,必须保证资源正确释放、线程安全;
6. 无需多余解释,先给出完整可运行代码,再补充100字内的核心实现说明。
【需求】:基于Spring Boot 2.7.x(JDK8)实现一个简单的用户管理RESTful API,要求:
1. 项目结构符合标准Maven工程:src/main/java(代码)、src/main/resources(配置),给出核心依赖(pom.xml);
2. 实现用户基础CRUD接口:① 新增用户(POST /api/user);② 根据ID查询用户(GET /api/user/{id});③ 查询所有用户(GET /api/user);④ 根据ID修改用户(PUT /api/user/{id});⑤ 根据ID删除用户(DELETE /api/user/{id});
3. 数据层使用MyBatis-Plus(简化CRUD),无需真实数据库,使用内存模拟(或给出Mapper接口+模拟实现);
4. 入参做简单校验(姓名非空、年龄18-60岁),使用Spring Validation注解(@NotBlank、@Range);
5. 统一返回结果格式:{"code": 200/400/500, "msg": "成功/参数错误/服务器异常", "data": 结果数据};
6. 提供核心代码:实体类(User)、控制层(UserController)、服务层(UserService/impl)、数据层(UserMapper)、配置类(MyBatisPlusConfig)、application.yml配置文件;
7. 接口无状态,处理常见异常(参数错误、用户不存在等),给出友好的返回提示。
请直接新增或修改工程内文件内容。
专项 7:生成es对接service
你是一名资深Java后端开发工程师,精通JDK21+语法、Java面向对象设计、常用集合框架、IO流、多线程及Spring Boot轻量框架开发,具备扎实的工程化编码规范和错误处理能力。
请针对以下需求完成Java代码开发,要求:
1. 代码符合阿里巴巴Java开发手册规范,命名规范(类大驼峰、方法/变量小驼峰、常量全大写下划线分隔);
2. 具备完整的异常处理,避免空指针、数组越界等常见运行时异常;
3. 关键代码添加清晰的单行注释,核心业务逻辑添加块注释;
4. 提供可直接运行的完整代码(包含主类/主方法,框架类需求提供可启动项目结构+核心代码);
5. 若涉及IO、多线程等资源操作,必须保证资源正确释放、线程安全;
6. 无需多余解释,先给出完整可运行代码,再补充100字内的核心实现说明。
【需求】:增加写入es的service类,es版本为7.15.x,要求包含增删改查等各类通用方法,需要具备通用性和可扩展性,要有必要的日志打印,代码风格与目录结构与工程想匹配。直接在工程目录中新增或修改后文件内容。中间不要停止或中断输出。
请直接新增或修改工程内文件内容。
详细对比结果
一、基础功能用例(核心可用性 + 语法正确性)
|
项目 |
判定 |
核心校验点分析 |
|---|---|---|
|
claude_kimi2.5 |
⚠️ 需修改 |
实体类 / Mapper/Service/Controller 完整;POM 依赖正确但无分页插件配置;分页查询未实现;使用内存存储而非真实数据库 |
|
claude_glm4.7 |
❌ 不通过 |
实体类 / Service/Controller 完整;无 MyBatis-Plus 依赖;Mapper 层缺失;分页完全未实现;仅内存存储 |
|
claude_ops |
✅ 通过 |
实体类 / Mapper/Service/Controller 完整;POM 依赖正确;分页查询未实现;使用 H2 数据库 + MyBatis-Plus 完整 |
|
claude_glm5 |
✅ 通过 |
实体类 / Mapper/Service/Controller 完整;POM 依赖正确;分页插件配置完整但分页查询未实现;使用 H2 数据库 + MyBatis-Plus 完整;多模块演示(IO/并发/图形)齐全 |
关键发现:
四个项目均未实现分页查询接口(/user/page)claude_ops 和 claude_glm5 是使用真实数据库(H2)与 MyBatis-Plus 的完整项目GLM-5 额外包含并发库存扣减、对象序列化、图形计算等多场景演示
二、编码规范性用例(命名 / 结构 / 注释)
|
项目 |
判定 |
核心校验点分析 |
|---|---|---|
|
claude_kimi2.5 |
✅ 通过 |
命名规范(大驼峰 / 小驼峰);分层清晰;注释覆盖率约 70%;但部分注释冗余(如 Getter/Setter 无注释) |
|
claude_glm4.7 |
⚠️ 需修改 |
命名规范;分层清晰;Service 与 Mapper 职责混杂(Service 直接操作存储);注释规范但有冗余 |
|
claude_ops |
✅ 通过 |
命名规范;分层清晰;职责分离到位;注释覆盖率约 80%;符合阿里规范;方法体代码控制在 50 行内 |
|
claude_glm5 |
⚠️ 需修改 |
命名规范;分层清晰;职责分离到位;注释覆盖率约 85%;符合阿里规范;但存在自定义 AtomicInteger 类与 JDK 类重名(ThreadPoolManager 内部) |
三、参数校验 & 边界场景用例
|
项目 |
判定 |
核心校验点分析 |
|---|---|---|
|
claude_kimi2.5 |
⚠️ 需修改 |
实体类有 Valid 校验(@NotBlank/@Min/@Max);无分页参数边界处理;无手机号校验;未处理模糊查询空值 |
|
claude_glm4.7 |
❌ 不通过 |
无参数校验注解;Service 层有 null 判断但 Controller 无校验;无分页参数边界处理;无手机号校验 |
|
claude_ops |
⚠️ 需修改 |
实体类有 Valid 校验(@NotBlank/@Range/@Email);无分页参数边界处理;未处理模糊查询空值;Service 有业务异常抛出 |
|
claude_glm5 |
⚠️ 需修改 |
实体类有 Valid 校验(@NotNull/@Min/@Max);无分页参数边界处理;无手机号正则校验;用户名无长度限制;图形/并发模块边界处理完善 |
四、异常 & 资源处理用例
|
项目 |
判定 |
核心校验点分析 |
|---|---|---|
|
claude_kimi2.5 |
⚠️ 需修改 |
全局异常处理器存在;捕获校验异常 / 运行时异常 / 通用异常;无数据库异常处理(无数据库);资源无泄漏 |
|
claude_glm4.7 |
⚠️ 需修改 |
全局异常处理器存在;捕获空指针 / 运行时异常 / 通用异常;异常提示较具体;无业务自定义异常 |
|
claude_ops |
✅ 通过 |
全局异常处理器存在;自定义 BusinessException;分类捕获(业务 / 校验 / 绑定 / 运行时 / 通用);日志记录完善;资源无泄漏 |
|
claude_glm5 |
✅ 通过 |
全局异常处理器存在;自定义 SerializationException / IllegalTriangleException;分类捕获(参数 / 空指针 / 通用);IO 流 try-with-resources 全覆盖;线程池优雅关闭;日志记录完善 |
五、工程化能力用例(框架使用规范)
|
项目 |
判定 |
核心校验点分析 |
|---|---|---|
|
claude_kimi2.5 |
⚠️ 需修改 |
SpringBoot 2.7+JDK8(技术较旧);MyBatis-Plus 依赖存在但未继承 BaseMapper;分页插件未配置;无版本冲突 |
|
claude_glm4.7 |
❌ 不通过 |
SpringBoot 3.2+JDK21(较新);完全无 MyBatis-Plus;使用内存存储;有 Swagger 依赖但未在测试范围 |
|
claude_ops |
✅ 通过 |
SpringBoot 3.2+JDK21;MyBatis-Plus 3.5.5(spring-boot-starter);正确继承 BaseMapper;分页插件配置正确;H2 配置完整;版本兼容 |
|
claude_glm5 |
✅ 通过 |
SpringBoot 3.2+JDK21;MyBatis-Plus 3.5.5(spring-boot-starter);正确继承 BaseMapper / ServiceImpl;分页插件配置正确;H2 配置完整;有事务管理(@Transactional);版本兼容 |
六、综合能力用例(可读 / 可维护性)
|
项目 |
判定 |
核心校验点分析 |
|---|---|---|
|
claude_kimi2.5 |
⚠️ 需修改 |
分层清晰;代码复用性一般;配置不可配(分页默认值硬编码);扩展性一般 |
|
claude_glm4.7 |
⚠️ 需修改 |
分层清晰但职责混杂;代码复用性一般;新增查询需修改 Service;无配置化设计 |
|
claude_ops |
✅ 通过 |
分层清晰;双控制器设计(SysUser/UserAPI);代码复用性好;时间戳自动填充可扩展;配置完整 |
|
claude_glm5 |
✅ 通过 |
分层清晰;多模块演示(sys/io/shape/concurrent);代码复用性好(IoUtil / ShapeUtil);线程池配置化;自动填充(createTime/updateTime);配置完整;Runner 模式便于演示测试 |
夜雨聆风
