\n \n
用户输入界面和检查结果 / 仓库名称检查功能
\n\n\n错误提示显示
\n提示词:
\n\n\n此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
\n
结果:
\n提示词:
\n\n\n后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在要参考 gitlab v4 的接口来调用
\n
结果: 只完成了后端部分,询问我是否继续实现前端功能
\n提示词:
\n\n\n继续
\n
结果: 功能可用
\n用户输入界面 / 仓库检查功能
\n加载状态显示
\n提示词:
\n\n\n此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
\n
结果:
\n提示词:
\n\n\n后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在要参考 gitlab v4 的接口来调用
\n
结果: 功能可用
\n用户输入界面 / 仓库检查功能
\n仓库存在检查结果
\n提示词:
\n\n\n此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
\n
结果:
\n提示词:
\n\n\n后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在要参考 gitlab v4 的接口来调用
\n
结果: 功能不可用
\n主要问题:
\n提示词:
\n\n\n把上面 3 条贴了进去
\n
结果: 功能不可用
\n提示词:
\n\n\n我让你恢复 create 接口的代码,你怎么那么多思考呢,你马上给我恢复别废话。另外你调用的 gitlab 查询仓库的接口地址不对,你还是多思考下你该干的事情吧。
\n
结果: 功能不可用
\n第四轮后的错误状态
\n提示词:
\n\n\n我来告诉你地址吧,是这个:
\n${gitlabAPIPrefix}/projects/${encodeURIComponent(
${namespace}/${repoName})}
。另外 create 接口你给我删多了,我让你把你的修改撤销,你删我的代码做什么。
结果:\n开始向我提问:
\n\n\nJoyCode 有一个问题:\n关于 joyer-create.js 文件,我需要更多信息来确定需要恢复的具体部分。您能提供以下信息吗:
\n哪些部分是后来添加的检查代码?\n哪些原始功能被删除了?\n或者您是否有原始版本的文件内容可以参考?
\n
继续提示词:
\n\n\n你他妈的不会 git checkout 吗
\n
结果:\n提示我手动运行一条命令:
\ncd backend/node-faas-platform && git checkout -- api/joyer-create.js\n
\n这就是 IDE/插件 永远比不上命令行工具的地方
\n但是功能仍然不可用,失去耐心开始看代码,发现查询仓库是否存在的接口,返回的是个 object,它却认为是个 array,去 array 里面找,当然找不到了:
\n// JoyCode 的检查是否存在的代码\nconst existingRepo = Array.isArray(projects) && projects.find(project => \n project.name.toLowerCase() === name.toLowerCase() && \n project.namespace && \n project.namespace.path.toLowerCase() === group.toLowerCase()\n);\n\n// 上面三个的正确做法\nconst checkResult = await _.get(repoCheckURL);\n// If we get a valid response with project data, it exists\nif (checkResult && checkResult.id) {\n return {\n exists: true,\n repoUrl: `http://xingyun.jd.com/codingRoot/${namespace}/${repoName}`,\n projectId: checkResult.id\n }; \n}\n
\n文件读取错误
\n持续的错误显示
\n提示词:
\n\n\n此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
\n
结果:
\n提示词:
\n\n\n后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在的接口地址是错的,要参考 gitlab v4 的接口来调用
\n
结果: 把前端项目改报错了,methods 里面加方法没有加逗号:
\n/Users/xingwenliang/ai-test/test-trae/frontend/src/pages/index/index.vue: Unexpected token, expected "," (509:12)\n
\n第二轮后的错误状态
\n提示词:
\n\n\n你把前端工程改挂了: /Users/xingwenliang/ai-test/test-trae/frontend/src/pages/index/index.vue: Unexpected token, expected "," (509:12)
\n
结果: 说是改好了,结果并没有修改(其实是改了 handleGroupChange 后面的 ,)
\n第三轮的修复尝试
\n提示词:
\n\n\n别放屁了,你并没有改
\n
结果: 他说他改了
\n提示词:
\n\n\n你他妈是单细胞动物吗,我说哪里你改哪里,你新增加了两个函数,前后都没有逗号。那么问题来了,你加了两个函数,一共需要加几个逗号?
\n
结果: 前端改好了,但是后端接口报错 404,很明显和上面 JoyCode 的问题一样,只是写了接口并没有注册
\n提示词:
\n\n\n你他妈接口写好了直接就能用了吗?自来水的原理是拧开水龙头就有水吗
\n
结果: 终于改好了,功能可用,丢失焦点触发
\n仓库名称输入 / 用户界面展示
\n检查结果显示
\n文件超大错误提示
\n提示词:
\n\n\n此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
\n
结果:
\n提示词:
\n\n\n后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在要参考 gitlab v4 的接口来调用
\n
结果: 新增加了一个接口,并且在入口注册了,但是逻辑仍然是去数据库里查
\n提示词:
\n\n\n不要去数据库里查,数据库里没有,要参照 gitlab v4 的查询仓库信息的接口来判断仓库是否已经存在。另外前端也一起改了
\n
结果: 前端新增了一个路由和页面,用来创建仓库...
\n提示词:
\n\n\n我让你在已有的创建仓库的逻辑上改,你他妈为啥给我新增一个
\n
结果: 功能可用,丢失焦点触发
\n用户界面展示 / 检查功能演示
\nClaude-4.0-Sonnet
模型选择界面
\n提示词:
\n\n\n此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
\n
结果:
\n提示词:
\n\n\n新加个接口,在用户输入 name 并且选择了 group 后就查询
\n
结果: 功能可用,也是输入后即触发
\n用户界面展示 / 检查功能演示
\n工具 | \n对话轮数 | \n功能状态 | \n优点 | \n缺点 | \n
---|---|---|---|---|
Claude-Code | \n2 | \n可用 | \n功能完整,API调用正确 | \n- | \n
Gemini-Cli | \n3 | \n可用 | \n有loading提示,速度快 | \n- | \n
Cursor-Cli | \n2 | \n可用 | \n功能完整 | \n界面抖动,无可用提示 | \n
JoyCode | \n5 | \n不可用 | \n- | \n多轮对话仍未完成,最终失败 | \n
Trae | \n6 | \n可用 | \n最终完成 | \n需要多轮对话才完成,文件超大错误 | \n
CodeBuddy | \n4 | \n可用 | \n支持模型选择 | \n理解偏差 | \n
Qoder | \n2 | \n可用 | \n双重保障,mock数据 | \n- | \n
测试场景:Git 仓库创建功能优化
./frontend
- 前端工程./backend
- 后端工程此项目的功能是通过指定的模板来创建 Git 仓库。目前存在的问题是:创建仓库时会直接调用 Git 创建仓库的接口,没有判断是否已经存在,如果已经存在了会返回 400 错误。
用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group。
提示词:
此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
结果:
提示词:
后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在的接口地址是错的,要参考 gitlab v4 的接口来调用
结果: 功能可用
用户输入界面和检查结果 / 仓库名称检查功能
错误提示显示
提示词:
此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
结果:
提示词:
后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在要参考 gitlab v4 的接口来调用
结果: 只完成了后端部分,询问我是否继续实现前端功能
提示词:
继续
结果: 功能可用
用户输入界面 / 仓库检查功能
加载状态显示
提示词:
此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
结果:
提示词:
后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在要参考 gitlab v4 的接口来调用
结果: 功能可用
用户输入界面 / 仓库检查功能
仓库存在检查结果
提示词:
此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
结果:
提示词:
后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在要参考 gitlab v4 的接口来调用
结果: 功能不可用
主要问题:
提示词:
把上面 3 条贴了进去
结果: 功能不可用
提示词:
我让你恢复 create 接口的代码,你怎么那么多思考呢,你马上给我恢复别废话。另外你调用的 gitlab 查询仓库的接口地址不对,你还是多思考下你该干的事情吧。
结果: 功能不可用
第四轮后的错误状态
提示词:
我来告诉你地址吧,是这个:
${gitlabAPIPrefix}/projects/${encodeURIComponent(
${namespace}/${repoName})}
。另外 create 接口你给我删多了,我让你把你的修改撤销,你删我的代码做什么。
结果: 开始向我提问:
JoyCode 有一个问题: 关于 joyer-create.js 文件,我需要更多信息来确定需要恢复的具体部分。您能提供以下信息吗:
哪些部分是后来添加的检查代码? 哪些原始功能被删除了? 或者您是否有原始版本的文件内容可以参考?
继续提示词:
你他妈的不会 git checkout 吗
结果: 提示我手动运行一条命令:
cd backend/node-faas-platform && git checkout -- api/joyer-create.js
这就是 IDE/插件 永远比不上命令行工具的地方
但是功能仍然不可用,失去耐心开始看代码,发现查询仓库是否存在的接口,返回的是个 object,它却认为是个 array,去 array 里面找,当然找不到了:
// JoyCode 的检查是否存在的代码
const existingRepo = Array.isArray(projects) && projects.find(project =>
project.name.toLowerCase() === name.toLowerCase() &&
project.namespace &&
project.namespace.path.toLowerCase() === group.toLowerCase()
);
// 上面三个的正确做法
const checkResult = await _.get(repoCheckURL);
// If we get a valid response with project data, it exists
if (checkResult && checkResult.id) {
return {
exists: true,
repoUrl: `http://xingyun.jd.com/codingRoot/${namespace}/${repoName}`,
projectId: checkResult.id
};
}
文件读取错误
持续的错误显示
提示词:
此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
结果:
提示词:
后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在的接口地址是错的,要参考 gitlab v4 的接口来调用
结果: 把前端项目改报错了,methods 里面加方法没有加逗号:
/Users/xingwenliang/ai-test/test-trae/frontend/src/pages/index/index.vue: Unexpected token, expected "," (509:12)
第二轮后的错误状态
提示词:
你把前端工程改挂了: /Users/xingwenliang/ai-test/test-trae/frontend/src/pages/index/index.vue: Unexpected token, expected "," (509:12)
结果: 说是改好了,结果并没有修改(其实是改了 handleGroupChange 后面的 ,)
第三轮的修复尝试
提示词:
别放屁了,你并没有改
结果: 他说他改了
提示词:
你他妈是单细胞动物吗,我说哪里你改哪里,你新增加了两个函数,前后都没有逗号。那么问题来了,你加了两个函数,一共需要加几个逗号?
结果: 前端改好了,但是后端接口报错 404,很明显和上面 JoyCode 的问题一样,只是写了接口并没有注册
提示词:
你他妈接口写好了直接就能用了吗?自来水的原理是拧开水龙头就有水吗
结果: 终于改好了,功能可用,丢失焦点触发
仓库名称输入 / 用户界面展示
检查结果显示
文件超大错误提示
提示词:
此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
结果:
提示词:
后端要新增一个接口来检查是否存在,前端当用户输入了仓库名字并且选择了 group 后就调用检查,另外你检查仓库是否存在要参考 gitlab v4 的接口来调用
结果: 新增加了一个接口,并且在入口注册了,但是逻辑仍然是去数据库里查
提示词:
不要去数据库里查,数据库里没有,要参照 gitlab v4 的查询仓库信息的接口来判断仓库是否已经存在。另外前端也一起改了
结果: 前端新增了一个路由和页面,用来创建仓库...
提示词:
我让你在已有的创建仓库的逻辑上改,你他妈为啥给我新增一个
结果: 功能可用,丢失焦点触发
用户界面展示 / 检查功能演示
Claude-4.0-Sonnet
模型选择界面
提示词:
此项目包含创建 git 仓库的功能,用户输入仓库名字并且选择了 group 后,要先检查该仓库是否已经存在,如果已经存在则提示用户更换名字或 group
结果:
提示词:
新加个接口,在用户输入 name 并且选择了 group 后就查询
结果: 功能可用,也是输入后即触发
用户界面展示 / 检查功能演示
工具 | 对话轮数 | 功能状态 | 优点 | 缺点 |
---|---|---|---|---|
Claude-Code | 2 | 可用 | 功能完整,API调用正确 | - |
Gemini-Cli | 3 | 可用 | 有loading提示,速度快 | - |
Cursor-Cli | 2 | 可用 | 功能完整 | 界面抖动,无可用提示 |
JoyCode | 5 | 不可用 | - | 多轮对话仍未完成,最终失败 |
Trae | 6 | 可用 | 最终完成 | 需要多轮对话才完成,文件超大错误 |
CodeBuddy | 4 | 可用 | 支持模型选择 | 理解偏差 |
Qoder | 2 | 可用 | 双重保障,mock数据 | - |
全文完,觉得本文对你有帮助吗?
讨论(0)