AI编程工具

从去年11月起,一直都沉在一个比较大的项目中,基本上对外面的事情关心地很少,对一些技术也不像之前那样能及时去跟踪去尝试,比如 AI 编程或者智能体的最新发展。

到现在正好一年,这个月开始才开始有些自由的时间。于是开始重度试用 AI 编程工具。之前都用得很浅,除了IDE 里面的自动补全外,基本上是有问题来问大模型,或者让它帮着写点小工具函数,但影响面很大的改动还是不放心让大模型去做。可能做的最大的一个工作就是让大模型把一套 Python 代码转成了 C++ 代码,就是手头做的大项目需要的,但转完的代码还是折腾了大概一周多,才全部调试正确。

我想在我心里,主要还是对大模型生成代码的信任度不够,因为之前用大模型生成的代码,自我感觉质量一般,总要折腾好久才能成型。可能实现一些工具还行,但对于生产环境的代码,总是不放心。

和一个同事交流,他说他使用AI编程工具的体会是:现在其实整体时间没变化太多,只是时间从写代码变成 review AI写的代码了,心想他说的有点道理。

但这些天的重度使用还是挺让我吃惊的。年初让Trae 生成过一个俄罗斯方块游戏,折腾了2个小时,包括之前拿 Cursor,Lingma 都试过一些东西,基本上都无法一次成型。但这次拿 Claude Code 重新做了一下俄罗斯方块游戏,一次成型,一点都没有改。然后我又拿它试了几个别的想做的小工具,都是出乎我的意料。

  • 俄罗斯方块:一次成型
  • 网页图片下载工具:Python GUI 程序,下载网页的图片。第一次出来后一般页面可以,但 www.douban.com 不行。于是让它自己改,它找到问题说是豆瓣页面上的图是动态加载的,所以也改成支持动态加载的,迭代了两三次后,就可以了。
  • ONNX Dump 工具:之前写过显示 Onnx模型 输入输出tensor的shape、类型等信息的脚本,又写过查看 Onnx 模型 metadata 信息的脚本。这次让大模型自己重头写一个,而且让它用个漂亮的TUI写,结果也基本上一次成型,除了显示内容再让它调整了一下,基本就可以了。后来又加上了metadata 导入导出的功能。
  • VAD Viewer 工具:之前 VAD 出来的时间戳结果很难直观看出是好是坏。很早用C++写过一个显示程序,但过了好久,源代码已经找不到了,现在想增加些功能也没法加。于是让大模型用Python来写一个,这个写了大概两个小时,但主要是我后来一直再加新的功能(比如两个VAD结果的对比、显示padding的信息、音频播放等),每次修改基本上也是一次成型,没有太多的折腾。这个我自己写我估计得个三五天。

当然,也有不成功的,有时候一个任务做不对了,就可能折腾很久出不来。比如我要从另外一个开源项目摘取一些代码,按照自己的代码规范和框架改写一下加到引擎的新版本中,结果两边结果就是对不上,折腾了有三天,而且中间实在折腾不下去了,重新开会话,修改需求描述让它重新做。最后还是在人工帮助下才完成对齐,也不太清楚为什么,两边代码其实都是公开的。

当然,我相信这些问题都在解决中。现在的AI编程工具已经不仅仅是在提问题、小函数生成级别的了,随着上下文窗口的扩大和智能体的引入,一整个项目整体的理解、重构、增加新特性看上去都是可以去尝试的了。

感觉AI编程工具在另外几个点上,也是可以很大地帮助开发者:

  • 文档
  • 单元测试
  • 代码 Review

这些都是平时嘴上强调,但实际上做的时候开发人员都不愿去做的,而这个正好是AI编程工具最擅长的。

标签: 技术 AI