AI编码工具使用心得

  • ~2.65K 字

从最早觉得「AI 写代码就是玩具」,到现在日常开发离不开,差不多两年了。这篇记录下我实际的使用场景、提问技巧、踩过的坑和一些个人心得,不吹不黑。

背景

我算接触比较晚的那批人。写了这么多年 Android,习惯的是遇到问题先搜索,StackOverflow 翻一圈,实在不行啃源码。那个年代的排错流程是「报错 → 搜索 → 翻十个链接 → 大半不相干 → 拼凑答案」,一天下来眼睛都是花的。

最早试用 AI 的时候,它给我的感觉就是一本正经地胡说八道,API 是编的、参数是错的,我还得一个个去核对,不如自己查来得踏实。

真正改变想法的是几件小事:

  • 一个正则表达式,自己写要调试半天,丢给它 10 秒给出能用的
  • 一段五百行的老代码要重构,让它先解释一遍逻辑,比自己啃快多了
  • Crash log 直接贴过去,它能把调用链和可能的原因列出来

这两年工具形态也是一路在变:

  1. 对话式的 ChatGPT:来回复制粘贴,当个高级搜索引擎用
  2. 补全式的 Copilot:写代码时它在旁边猜你要写什么,Tab 按到手软
  3. Agent 时代的 ZCode 这类:能自己跑命令、改文件、验证结果,你说需求它干活

形态越往后,对「怎么用」的要求越高,这也是这篇想聊的重点。

我的使用场景

1. 苦力活优先

样板代码、单元测试、gradle 脚本、正则、shell,这类「会写但写着烦」的活最适合丢给 AI。比如 ViewModel + Repository + 测试的整套结构,自己敲要半小时,AI 一分钟出初稿,改改细节就能用。单元测试尤其推荐:Mock 数据、边界 case 这种自己懒得写全的东西,让它枚举一遍,经常能补上自己没想到的坑。

2. 排查问题

以前排查一个 Crash 要翻十个链接,现在把 log 和相关代码一起丢给 AI,它会结合上下文分析,一两轮对话基本能定位方向。上次一个只在特定机型复现的 TransactionTooLargeException,它直接指出是某个页面往 Bundle 里塞了大 JSON,方向一次就对了。方案还是要自己验证,但「翻链接」这个过程是实打实省掉了。

3. 批量杂活

这次整理博客就是典型:64 篇文章里,代码块语言标注有大小写不规范的、有标错的,还有旧主题遗留的语法残留。手工改要一两天,AI 半小时全搞定,改完还顺手验证了构建。这种规则明确、量大、枯燥的活是 AI 的绝对主场。同理还有批量改包名、统一代码风格、老项目升级依赖这类活。

4. 看不懂的代码

接手老项目、看开源库源码的时候,让 AI 先讲一遍整体结构,自己再下进去看细节,比硬啃效率高很多。Dagger 那种生成代码满天飞的框架尤其明显——让 AI 对着生成的代码讲依赖图是怎么连起来的,比自己从 DaggerXXXComponent 里一个一个翻舒服太多了。

5. 学新东西

之前学 Harmony 的时候深有体会:官方文档 + AI 组合拳。文档看不懂的段落直接问,让它换个说法、举个 Android 里对应的例子,一遍就通了。相当于随身带了个不嫌你问题蠢的老师。比自己搜博客强在两点:一是能结合你的上下文解释,二是不会搜到五年前的过时文章。

6. 写文档和周报

技术人最烦的活之一。代码写完了让它根据改动生成注释、README、甚至是周报的初稿,自己再改成「人话」。它写的初稿结构清楚但一股机器味,正好,结构留下,味道自己调。

怎么提问才有效

用久了会发现,AI 输出质量的上限基本由提问质量决定。对比一下:

差的提问:

我的 APP 闪退了怎么办

好的提问:

Android 12 上闪退,log 如下(附完整堆栈),
相关代码是这个 Activity 的 onCreate(附代码),
只在开启严格模式后复现,Android 10 正常。
帮我分析可能的原因,按可能性排序。

区别就是上下文。我自己总结的几个要点:

  • 环境给全:系统版本、机型、复现步骤、完整的报错,别让它猜
  • 约束提前说:「只改这个方法,别动其他代码」「用 Java 不要 Kotlin」「要兼容到 API 21」
  • 要过程不要只要答案:让它先分析原因再给方案,方便自己判断靠不靠谱
  • 一次只问一件事:一次塞五个问题,大概率每个都答得潦草

踩过的坑

  • 幻觉是真实存在的。早期它给我编过一个根本不存在的 Glide API,参数都对得上号的样子,我还真信了,白调试半天。现在凡是它给的 API,拿不准的一律自己查文档
  • 过度工程。问个简单问题,它有时候能给一套设计模式齐全的「完美方案」,抽象一大堆,实际业务就三行代码的事。得学会在提问时就约束住:「用最简单的方式实现」
  • 会把能跑的代码改坏。让它重构过一个工具类,主体逻辑改对了,顺手把一个「看起来多余」实际在防并发重入的判断删了,测试没覆盖到,上线才炸。它眼里没有「不敢动」的代码,关键逻辑要盯紧
  • 上下文会丢。聊了十几轮之后它开始忘记前面的约定,重复问已经说过的东西。复杂任务要拆小,关键约束宁可多强调一遍
  • 手感变钝。这个是最近才意识到的:API 细节懒得记了,反正问 AI 快。短期没事,长期看基础的扎实度在下降。现在的对策是核心技能(架构、算法、底层原理)坚持自己写,AI 只接管体力部分
  • 代码安全。公司项目的代码往公开的 AI 服务里贴之前想清楚,敏感的密钥、内部协议、商业逻辑能不贴就不贴,或者先做脱敏。这年头数据出了门就不是你的了
  • 工具之间会打架。折腾博客时碰到的:本地安全插件把第三方主题里的 MD5 哈希(Gravatar 协议要求的)当漏洞拦下来了,AI 分析说这是误报。机器说是风险不一定真是风险,反过来也一样,最后还是得人来拍板

心得小结

  • 把 AI 当一个不知疲倦但需要盯着的实习生,不是当神,产出必须过自己的眼
  • 提问质量决定回答质量,上下文给足比什么都强
  • 明确、量大、可验证的活放心交给它;模糊的、要拍板的活自己来
  • 别跟它较劲。一个问法搞不定就换问法、拆任务,反复追问没有意义
  • 每次让它干完活,花两分钟看看它改了什么,看 diff 的习惯比会用 AI 本身更重要
  • 最先被省掉的是「查资料 + 拼凑」这部分工作,判断和决策还是自己的。现在写代码和以前最大的区别:以前是手累,现在是脑子累

工具一直都在变,但用法内核没变过:你得知道自己要什么,它才帮得上你。至于它以后会变成什么样,我是挺期待的,至少博客的格式整理这种活,我这辈子是不想再手动干了。

赞助喵
非常感谢您的喜欢!
赞助喵
分享这一刻
让朋友们也来瞅瞅!