决策者、中间文档与代码审阅:LLM辅助开发的三项核心能力

成为决策者:在LLM时代掌控你的项目

要思考自己在LLM辅助工作中的身份:你是决策者、是领导者,而不是执行者。许多开发者可能都有过这样的经历:明明是一两行直观且容易修改的代码,让LLM修改却总是无法改对,最终只能自己动手。但更让人困扰的是,在LLM迭代数个版本后,这段代码很可能又被改回了错误的状态,而我们却浑然不知,直到测试甚至发布后才发现问题。

困境与根源:为什么LLM总把代码改回去?

出现这种情况,核心原因在于:LLM会选择统计上最常见的方案,而不是最适合你的方案。

我们的工作基于具体的需求和场景,而LLM基于统计数据开展工作,这里核心的问题是信息不对称。当你觉得"这个需求很明显"时,对LLM来说,它看到的只是成千上万个类似语境中的统计规律。

破局之道:从线性对话到树状决策

第一步:通过对话同步信息

当LLM生成的答案不符合预期时,不要只是简单粗暴地让它"重试"(虽然有时候确实有效),而是应该为它提供更多的上下文信息。

一个有效的做法是:从简单需求开始,要求LLM先不要生成代码,而是和你聊一聊需求和技术实现。在对话过程中,逐步提供更多信息,让LLM真正理解你的特定场景。

–> 作为决策者,沟通能力非常重要。这不仅包括与LLM的沟通,还包括与团队成员、产品使用者的沟通。 –> 虽然与他人的沟通中存在更多不可控因素,但至少我们可以控制自己保持谦虚和开放的态度。

第二步:用中间文档固化决策

使用上述方法时,你会自然发现一个问题:项目中的决策实际上是树状的,而你与LLM的对话却是线性的。

这时,一个非常有效的策略是:生成Markdown中间文档

有了中间文档,我们就能弥补线性对话的缺陷。LLM可以随时访问决策树中任意节点的文档,了解当时的决策背景。更重要的是,我们应该使用树状结构来组织这些文档,这更符合真实的决策过程。

基于决策树的Markdown文档结构让我们可以无限完善项目决策记录,但显然无限细化是不现实的。这就引出了下一个关键:问题边界。

文档应该细化到什么程度?答案是因人而异的。当你与LLM的对话深入到你所关注的边界时(比如作为业余开发者或管理者,你可能不需要关注底层技术细节),就应该停止讨论,转而开始编码。

角色的进化:从Coder到决策者与审查者

这种工作流程与传统开发有相似之处:过去团队会产出详细的设计文档,然后交由开发者执行。主要区别在于,现在的"执行者"变成了LLM,而"决策团队"简化为LLM使用者一个人。

这必然导致一个结果:开发者的工作中,Coding时间会进一步减少(对我而言,这是需要遏制的冲动,需要逐渐适应),而规划、决策和结果审阅的时间会大大增加。

核心技能:如何审阅LLM生成的代码

我们需要把LLM看作"写代码极快,但经验为零的开发者"。因此,绝对不能无条件信任它生成的代码,而是要仔细审查。

基于这个前提,高效阅读LLM生成的代码很可能成为AI辅助编程时代开发者的核心能力之一。

问题是,阅读他人代码已经很困难,阅读LLM生成的代码更是难上加难,原因在于:

  • LLM生成的代码通常缺乏完整的上下文
  • 代码可能是正确的,但设计不优雅、可读性差
  • LLM可能生成带有微妙逻辑错误的代码

同样重要的是,我们不应该学习LLM的编码风格,而是要小心验证它是否符合要求。

和任何技能一样,代码审阅需要刻意练习。以下是一些实用技巧:

通用技巧:

  • 把代码跑起来,断点调试:这是最快最有效的方法。如果项目复杂,可以用LLM快速搭建测试DEMO(你会发现在这方面LLM出奇地好用)
  • 用工具可视化代码结构和数据流
  • 补充注释
  • 尝试重构:使用更有意义的变量名,将大函数拆分为小函数

针对LLM的特殊技巧:

  • 测试驱动:拿到代码后先测试再阅读
  • 测试驱动:先写测试用例,再让LLM根据测试生成代码
  • 检查代码与需求的匹配度:用注释标记每部分代码对应文档中的哪个需求(LLM经常过度发挥或遗漏需求)
  • 关注模式:不要只看语法,要思考代码背后的模式和框架,比如为什么使用某个数据结构或设计模式。不要只关注"术"(怎么写),更要反思"道"(为什么)

后记

本文是我此前关于 LLM 思考的延续,上一篇文章可参见:🌱LLM基本原理及思考 - Klin’s Blog

文中大部分观点和灵感来源于我于 2025 年 10 月 26 日深圳·香港中文大学深圳研究院 参加的 深圳 Community Day 开发者的聚会

特别感谢以下嘉宾的精彩分享,他们的见解是本文的基石:

  • 亚马逊云科技资深开发者布道师 - Damon
  • 亚马逊云科技副总裁 - Jeff Barr
  • 亚马逊云科技资深布道师 - 郑予彬

同时也由衷感谢活动的所有组织者与分享者,是你们的努力促成了这次宝贵的思想交流。

–> 微信关注 开发者UserGroup社区,可以观看会议视频回放。