前言
GPT-5
刚发布的时候,大家都在刷屏赞叹,但没过多久竟然就变成各种吐槽了。
今天,我们就亲自使用 GPT-5
实测一下编程场景,看看它的效果究竟如何。
背景及任务
背景
项目依然是我们内部的协同办公平台,整个项目前端采用 Vue2 + Element UI + SpringBoot + MyBatis 实现。
任务
团队业务没有那么复杂,打算直接把财务模块,主要是应收和实收集成在协同平台内。
主要包括项目的应收管理、实收记录、开票情况,方便项目负责人和领导轻松掌握项目回款情况。
实战记录
最近呢,一直在尝试各种 AI 编程工具,借着这次机会,我们正好试试 Windsurf
新版本表现怎么样。
这次实操过程,我们采用了 Windsurf + GPT-5
的搭配,无需购买,免费版本即可使用,大家如果有需要,也可以自行上手体验下。
先说明一下,不知道是初次使用的问题,还是 windsurf 抑或 GPT-5 设计如此,整个过程比之前对话次数多。
如果有哪位同学有更好的使用建议,还望不吝指导。
由于 Windsurf Code
模式遵循先分析
再生成
的方式,所以下面我们分为"需求分析"、"初版生成"、"优化改进"三部分进行讲述,每部分包含了多次对话。
需求分析
第1次对话
先是把自己的目标简单整理下发给 Windsurf
。
markdown
## 业务
想要基于已有的项目管理,实现一套简单、好用的包括应收、实收、开票功能的财务模块。
应收记录在项目创建之后在该模块中手动新增,一个项目可以创建多条应收。
每条应收支持多次实收,应收金额全部收款后,需要明显标记完成后款。
## 界面
1. 与现有界面保持一致。
2. 实收记录与应收在一个界面,可采用右侧抽屉效果。
## 技术
1. 前端工程地址:D:\Project\scgit\sccop\sccop-vue
2. 后端工程地址:D:\Project\scgit\sccop\sccop-rest
3. 数据库:MySQL 5.7
和 Cursor、Trae 不太一样,Windsurf 没有直接生成代码,而是先进行了需求分析,有点像 kiro、SOLO 的处理逻辑。
给出了任务分解规划,并要我进行细节确认。

在这个过程中,生成了 todo-list,估计这个特性已经成为 AI 编程的最佳实践了。

第2次对话
针对 Windsurf 给出的方案,和一些细节给出意见。
markdown
1. 数据库前缀使用pf_代表计划财务,而不是fm_,这个是文件管理缩写。
2. 币种固定 CNY、金额两位小数可以
3. 需要完整发票抬头信息
4. 付款方式采用字典,并给出字典数据sql
5. 菜单挂载"商务/应收管理"
可以看到,每次对话都会更新 todo-list,以便保证目标执行的正确性。

然后又补充了一些待确认的点。

第3次对话
再次确认新增的事项。
markdown
1. 不需要外键依赖
2. 票据/凭证是采用 URL 存储,前端复用现有上传组件
Windsurf 总结这几步,给出了最终的任务规划。

可以看到,下一步才会进行真正的代码生成。
初版生成
第4次对话
由于前面已经确认了很多内容,这一步的指令相当简单,仅仅起到确认的作用。
确认开始吧
按照上一步计划,先生成"应收"的后端部分。

然后说明下一步计划:
- 实现"实收"、"开票"的后端
- 前端页面
- 前端API

第5次对话和第6次对话
虽然上面说下一步要把剩余的后端和前端都实现了,但实际上 Windsurf 分为 2 次才完成。
第6次对话结果如下图:
- 建议进行联调
- 给出一些需要确认的点
- 更新了完成的 TODO 状态

第7次对话
为了减少后面出错的可能性,我采纳了 Windsurf 的建议,先让它自行验证一下前后端。
验证前后端,然后确认菜单路由并进行微调
验证完成后,它还贴心地给出了功能测试用例。

第8次对话
依然是采纳建议,启动应用。
同意启动
它竟然还分析出来,我之前前端连接的是测试服务器,并帮我改正了。
这波操作,感觉比我还了解项目呢~

由于初版的需求没有显式指定参考页面,出来的 UI 效果明显不一致。

优化改进
下面我们开始优化。
由于是改完一次确认一次,所以分了多次对话。
之后可以尝试下一起测试,合并优化。
第9次对话
界面与"项目管理"风格不一致,请先修复该问题
这个提示词按我的理解,已经过于简单了,并且没有指定任何上下文文件,竟然也是一次优化完成。
第10次对话
bash
弹窗样式也不一致,需要参考项目管理修改。
同时新增时项目id直接使用下拉,对接项目接口。
列表上操作样式错位,需要修复。
修改前的效果如下图,操作列明显错位。

修改后可以看到完美解决。

最让我服气的是,就凭"操作样式错位"这句大白话,它居然就精准定位到了问题,这多模态理解能力,确实到位。
第11次对话
这里发现了一个生成的缺陷。
应收管理created方法未自动执行
修复倒是很简单,但为什么不一次性生成正确呢。

后面两次就是比较常规的修复过程了。
第12次对话
swift
"实收/开票"两个弹窗界面参考已有UI风格,但不采用内嵌面板,并同步优化抽屉UI
第13次对话
应收管理列表项目ID应该显示项目名称、状态应该显示value对应的文字
整个"优化改进"阶段都非常顺利,感觉它对项目上下文的'记忆'和'理解'相当到位。
结语
用下来最深的感受就是,Windsurf
+ GPT-5
不像在"生成代码",更像是在和一个经验丰富的同事"结对编程"。
它会主动拆任务、列TODO、提验证建议,甚至在我没提需求时,就预判了"要测的边界情况"。
虽然偶尔也会犯点低级错误(比如created方法没调用),但整体思路清晰,执行靠谱,根绝比较符合作为我们编程的"副驾"。
你的 GPT-5 实战体验如何呢?有没有遇到"神来之笔"或"离谱操作"?欢迎在评论区聊聊!