聊聊AI编程的情况和优劣势
聊聊AI编程的影响
情况是这样:
- 的确是人均AI编程。
- 随着AI的使用,工期越来越短。
比如说周四下午4点左右,前端提了3个需求。 今天早晨起来一看,同事已经提交了3个fix,并且上线预生产环境。
你说他是加班写的,鬼才信。
业务流程
描述大概是这样的:
- 产品通过AI生成了需求
- 然后开发组同事立刻把产品AI生成的需求喂给AI
- 然后前端同事通过AI接入后端同事提供的AI生成的接口
纯AI。
是否进行codeViewer?
根本看不完。
首先:AI一天生成大概2000行代码,而一个开发能codeViewer 500行。
- A同事他直接上线预生产环境,完全不进行codeView,提前下班躺平拿绩效
- B同事他苦哈哈的进行codeView,加班到晚上几点
当出现bug的时候,将bug提交给AI,让AI自己去反思
AI是否能够自己反思?
我这边已经写过好几个AI生成的接口了。
- 我让他生成一大堆接口,AI生成了
- 我让他删掉他自己生成的对应接口,他删除不干净
比如说java比较啰嗦,需要控制层、sevice、impl、mapper、外加一个grpc层。 他可能只删除了控制层和sevice、mapper层,却没有删除impl和grpc层。
生成的接口也有问题:
- 他没有生成控制层
- 让他连续反思5次,AI坚持自己没错
- 你告诉她:控制层为什么没有生成?AI立刻道歉,然后生成。
在一些简单任务上,他的一次成功率可能勉强超过50%。(比如说,生成一个查询接口,完全不依赖其他接口,或者让他实现一个排序) 在kiro调用工具的时候,他非常非常嘴硬。不像是豆包。他会给出
- 我仔细检查过了,没有任何问题,是你调用方的问题,你需要检查XX地方
- 我坚持自己的方法,就是调用方网关的问题
排查故障
在提供完整日志,排查线上故障的时候。故障越具体,他排查的相对来说比较快。 比如说,给他报错堆栈、完整日志信息。他能从几万字里面捞出来核心的几个指标。
我也是经常使用AI,所以我经常性用AI帮我排查各种故障。 这个没啥好说的,的确比人强。因为人不太可能一次性读完几万字。
聊聊AI代码生成的质量?
有这么几个问题:
- 他在简单问题的效果上是真的挺不错的
- 随着上下文的增长,降智非常非常明显
比如说,我让他写个复杂的排序。他非常漂亮的给我实现了。 立刻提交上去,测试跑通,效果非常非常好。
但是我要求他把Void返回值改为int类型。他生成失败了。
代码方面:无脑吃异常。不打印日志。 但是他会重试重构接口。
然后,AI重构的时候会生成大量无用代码,或者干半截 用买东西来举例子:
- 让AI去买西瓜
- 他付钱了,但是忘了把西瓜拿回家
我让他新增一个枚举值,他成功计算出来了,但是忘了set到返回值里面,是个null。
AI不会写特别特别长的方法,他会进行拆分和分层。这是我没有想到的。 工具类会放在工具类里面,控制层做控制层的事情。 不会有几千行的大方法。
聊聊预算
海尔是一家市值几千亿的白色家电公司。
但是:
- 公司刚刚发了政策,限制产品、经理使用AI,不批
- 任何情况下都不批
- 只有前端、后端开发能够使用AI
然后,还要求开发安装插件,报告AI生成代码数量。否则下个月立刻禁用。
- 解禁只有一次机会,一次机会用完,就永远不能申请
额度是:一个月20美金。1000额度
效果是什么:
- 让他生成一个简单的接口,没有任何复杂业务逻辑,他10分钟消耗10额度。
- 问他一个简单的问题,他消耗2-3额度
- 如果使用fable5,额度消费大概是其他模型的2.6倍
我之前以为是不够的,但是如果省吃俭用是够用的。 项目组是不写测试用例的。
- 因为写测试用例消耗的token,和生成代码消耗的token差不多
- 而且测不出什么东西来
聊聊同事的情况
越菜的同事,对AI的依赖度越高。 遇见问题,第一反应问AI。而且100%依赖AI。
两个同事,A水平是80分,B水平是40分
- 使用AI以后,A的水平变成了75分
- B水平变成65分
因为不管什么提示词,基本上生成代码的质量差不多。
其他的同事:
- 自己写代码,然后AI进行优化
- 仅仅在故障排查的时候使用AI
在项目工期非常紧张的时候,直接全部AI编程。完全不进行codeView。
我不知道这种情况会不会给项目埋雷。但是我感觉会有。
