也是比较落后的才接触 ai 编程, 已经用了一个多月, 记录下现在对 ai 编程的感受.
一开始用了 cursor 的 agent, 然后发现原来 vscode 也有一样的功能, 切到"agent"就可以, 虽然没上传图片的按钮, 但可以截图直接复制. 现在主要在 vscode 上使用. 其他的 ai 编辑器是很多的, 我都没用, 猜想差不多, 也没热情折腾.
这里的感受记录, 就特指使用 agent 让 ai 写, 自己不进入文本编辑页面.
用了一个月 ai 变成的感受总结
我觉得 ai 很棒. 因为我有很多自己的项目, 快速迭代, 开放创造力, 解放重复劳动.
自己的项目本来不是"必须"的功能就都不做了, 现在可以让自己的产品更完整.
ai 编程会真实影响程序员吗?
会, 在一些基础编程能力上, ai 太快了.
就像汽车代替马车, 十倍以上的效率变化就会导致结构性变化.
这个结构性变化一定是对一些人好, 对一些人坏的.
大家可能第一个想到的是对产品经理好, 对初级程序坏坏, 我用了这段时间觉得未必.
但无论对谁好, 对谁坏, ai 编程一定是会长期存在于行业里的东西了.
现在那么多大厂写 ai 编辑器, 也算是抢着第一批"造车"了.
程序员会被 ai 替代吗?
不会. 有2点是 ai 绝对代替不了的.
首先, ai 其实是"搜索 => 粘贴"能力的质变, 即使模型再先进, 上限也一定比人低, 是不会淘汰所有程序员的.
还有个很重要的, ai 无法负责, 也无法真正理解业务. 一定是需要人为业务兜底的.
ai 编程时代, 我们能做什么?
首先是被动一定要做的事, 就是上面说的, 为技术和业务兜底, ai 在技术上也是不能做到全包的.
另外更重要的是主动要做的事, 是坚持学习.
所以在 ai 写代码的时候, 强烈建议盯着代码看. 看不懂他写的, 就学习, 看得懂的, 要尝试优化 ai 产生的代码.
然后有疑问的地方, 有空就要深入研究, 才能不成为被 ai 淘汰的人.
ai 编程适合什么场景
我最近用 ai 编程做了这些事情: 工作迭代 react 项目, 一个 nuxt 项目, 一个 electron 项目, 一个抢号软件 vue 的, 一个 vue 的数据可视化项目.
另外还用命令行的 agent 在服务器上找项目, 启停 nginx, 但在指定的终端 ( jms ) 上就没 agent 可用了.
但 ai 编程其实在工作/个人项目, 或者 vue/react, 是没什么区别的, 可以区分的场景我认为是:
-
创建路由, 创建文件, 项目初始化.
-
画页面, 对接口.
-
复杂问题, 依赖版本问题, 工程化问题.
下面说几个我在用 ai 编程时候的真实场景:
- 对接用户注册/登录的接口. 我把接口给 ai, 没有给 ui 信息. 直接对好了接口, 创建了新路由, 画了新页面, 还画好了更新用户信息的页面. 我真实估工时, 需要一整天(8小时), 但包含调整的工作量, 半小时就完成了.
- 一个抢号软件. 我说了需求, 100字左右, 然后把抓包的 curl 和返回值与对应页面的截图, 给了 ai. 还让他自己写了"抢号模式", 预设默认选项, 自动识别验证码, 进行抢号, 软件可用. 几乎没有写一行代码.
- 优化样式. 可以直接截图, 也可以描述意见, 修改样式效果很好.
- 编写测试用例. 我对e2e测试一直不熟, 我通过描述业务流程+复制浏览器上面的元素, ai 完成得很好, 测试能按照我描述的执行.
- 升级 electron 应用的依赖. 升级后报错, 贴给 ai 后, 他反复尝试固定的几种方式, 最后浪费了一下午回滚了.
- electron应用开发"导出"功能. 我通过"对话=>测试=>提交代码"的流程开发, 结果把我"下载"文件夹清空了, 因为 electron 的应用有比 web 更大的权限.
- 让 ai 帮我修改数据. 大概是"根据一个字段的自然语言描述来生成一个字段的值", 效果很差, ai 没有批量, 是逐个单位分析字段的.
现阶段 ai 的编程能力
用了这段时间的第一感受是很好用, 提高效率, 还能做一些本来做不到的事, 但在一些场景上, 还是走了弯路, 所以使用 ai 也是需要经验的, 需要对 ai 能力边界的把握.
ai 的能力, 我的总结是 "广, 浅, 快", 使用 ai, 像是拥有了一位会得很多, 但不精, 干活又快的下属 . 他的工资是70一个月, 但我还想着怎么把工资压低一些, 比如通过淘宝.
这里要分别聊这3点.
-
会得多, 对于我这个 web 开发者, 对于不熟悉的 electron api, node api, 甚至后端代码, 服务器上部署语法. 这些内容会省去自己大量的学习时间, 如果自己去学, 大概率后面也基本忘了. 这个"广度"对项目的创建, 路由/状态管理的初始化, 也是适用的. 我们其实普遍对这些不熟, 只是复制的.
-
难的做不了. 失败1次, 就别再浪费时间试了, 这也是 ai 还留了口饭给我们吃. 同理, 如果你觉得 " ai 写得代码真不错, 架构很好, 很精妙" 之类的, 别怀疑, 你在这个方面技术有待提高.
-
写页面特别快, 不管是 js 还是 css, 特别是对接口, 定义变量之类的. 这些体力活不光能节省体力, 还能节省精力, 还能提高一部分人的职业喜欢程度. 比如我就是不爱写页面的, 当然对于享受写页面的同学, 就是负面感受了.
ai 产物不可维护的问题要分情况看待. 生命周期短的项目, 不打算迭代的项目, 可以"vibe coding" .
而大部分情况, 希望项目长期可维护, 那就要自己把关, 盯着他写, 看他思考过程, 像个领导, 以比 ai 更深的技术层次, 对 ai 产物有完全理解, 及时指出技术方案的不合理.