原来也用过 IDE 内置的 AI 补充, 小功能不用查 API 或者文档, 很快就能实现了, 我以为 AI 对程序员的影响仅此而已.
但是最近两天, 用了 AI 的一些功能, 让我感觉可能影响更大.
我们接手了一个二开的项目, 数据库中有 60 多张表, 并且原系统是拆分了 n 多个微服务的 spring. 因为我们团队更习惯用 laravel, 所以一些新增接口和功能, 不打算在原来的 spring 中添加接口, 直接用 laravel 来实现.
这就面临一个问题, 需要把数据库中 60 多个表, 都在 laravel 中创建对饮的 model 文件, 不仅有表名, 还有字段名之类的. 本来安排一个同事来手工处理, 我估计可能需要 1 周左右.
今天突然突发奇想, 能不能用 ai, 实现一个 laravel command, 自动读取数据库表名和字段名, 自动创建所有的 model 文件?
结果让我大开眼界, 这种功能在 ai 的一问一答下, 不到 10 分钟就实现了功能, 全部把 60 多个表转换成 model 文件, 并且字段名没有一个错的(人工创建很难免有字段漏了或者错了).
平心而论, 如果我让某个同事来写这个命令工具, 基本上按照我司人员的水平, 估计也要写 1 天才能完成, ai 只需要不到 10 分钟, 并且代码很严谨, 备注和思路远比普通水平的程序员更好.
然后就把更复杂的任务交给 ai, 比如原来的 spring 会对很多 status 通过 java 注解 自动获取和数据库字典.在 laravel 中没有类似的注解, 只能手工获取字典数值, 很麻烦, 开始一直没有思路.
然后把问题抛给 ai, ai 竟然能给出建议, 在模型的 boot 中:
protected static function boot() { static::retrieved(function ($model) { foreach ($model->dictionaryAttributes as $key => $dict_code) { // 自动获取注解字典 ... } }); }
卧槽, 这种用法, 我也是没有想到, 这种解题能力, 基本上我司的所有程序员都没有这种能力(毕竟大部分人都是 crud boy)
我真的被震撼了, 如果按照 ai 大模型的发展进度, 基础的 curd 可以直接创建, 复杂的业务流程也能给出高效的建议, 我司的程序员真的可以减少很多了.