大模型 辅助开发体验
个人用大模型来辅助开发主要分以下几个方面:
- 少量代码编写:
- 对单行代码补全
- 对重复逻辑进行补全
- 实现简单业务
- 实现常见算法、数据处理
- 非代码编写相关:
- 代码的结构设计
- 对需求进行重构,转化为编码设计。例如选择算法、第三方库等。
- 文档的撰写
- 一些优化,输入校验等
实际上,在以上功能上,阿里的通义千问插件经过一段时间的磨合,还是有不错的体验,能减少很多重复工作,提升开发的效率。不太好的方面在于:
- 略微有些复杂的bug,AI就束手无策了,提供的解决方案很难直接采用而只能作为提示;
- 第三方库的使用,存在很多问题。经常出现,对不上号的情况。例如,参数格式、接口名称等问题。
尝试使用DeepSeek直接构造项目工程: 思路是通过对话让AI理解需求,并首先完成项目的功能模块设计。然后给出项目结构,再输出单个文件的内容以及提供一些测试。
体验的过程,发现这种方式存在一个比较明显的缺陷: 慢。 这个主要是DeepSeek的长考导致的。AI无法像人类一样快速复用刚刚输出的知识、观点,而必须重新进行思考。目前来看,实现要给中型项目的过程中,功能设计、单个模块的编写,token的数量都在数千左右,一般的API都需要数分钟给出答案。因为慢,目前就我个人,无法像和其他人类合作一样和AI合作。
其他问题:
- 输出结果的质量不稳定。同样类型的需求,实际上AI给出的实现的质量并不都是一致的。这个取决于需求的复杂程度、提供的信息的充分程度。此外,AI经常会出现一些小的bug,需要人为的调试处理。
- 总尝试给出一个完美答案。AI在尝试给出实现时,总尝试照顾到尽可能多的场景,这实际可能是冗余的,尤其是当需求是构造一个简单原型时。
- 输出的设计不稳定。当需求出现小的改变的时候,AI可能会给出一个和之前的方案完全不同的设计实现。而由于AI的代码质量并不稳定,经常会有一些小的错误需要调整,这一问题给我带来了比较糟糕的体验。
总的来说,AI根据需求给出的代码,已经基本能够运行,且从代码风格、可读性、功能完备性等方面超过一般的程序员。在这个质量基础上,未来AI的编码能力还有提升空间而且一定能提升。对于大部分初级程序员来说,初始构造一个项目的过程也不总是顺利的,中间会产生很多问题。程序员通过不断解决旧代码的问题,输出新代码的方式来实现整个项目是在正常不过的事。
接下来就是如何让AI具备这种能力。
- 记住一个全局的方案设计。
- 聚焦于当前的功能模块的实现和测试。
- 根据测试结果的反馈进行bug的排查、实现的修改。
- 记住其他功能模块的具体接口
- 依赖其他功能模块的接口进行编程
个人认为,重难点是第2项和第3项中的“测试”相关的功能。以为其他的几项的问题都能通过迭代来逼近,但测试是支撑迭代的一个当前还没有的环节。
没用过cursor,不知道cursor的原理是否包含测试设计-测试运行-测试结果分析-代码改造的功能。有用过的哥们可以说一下。