标签 软件工程 下的文章

Go 的 AI 时代宣言:我们如何用“老”原则,解决“新”问题?

本文永久链接 – https://tonybai.com/2025/12/25/go-next-frontier-gophercon-2025

大家好,我是Tony Bai。

“AI 正在重塑软件工程,但它并没有改变软件工程的本质。”

在 GopherCon 2025 上,Go 语言产品负责人 Cameron Balahan 发表了一场题为《Go 的下一个前沿领域》的主题演讲,重点关注了AI 时代的软件工程这个重要的主题。在这个充满焦虑与炒作的时代,Cameron 没有贩卖焦虑,也没有盲目追逐热点。相反,他通过一组冷静的数据和深刻的洞察,为我们描绘了一幅清晰的蓝图:Go 语言的核心原则——简单、高效、工程化——在 AI 时代不仅没有过时,反而变得比以往任何时候都更加重要。

本文将带你深入这场演讲的核心,解读 Go 团队如何看待 AI 对软件工程的冲击,以及他们正在构建什么样的未来。

AI 时代的“软件工程失衡”

Cameron 首先抛出了一个尖锐的观察:AI 的引入,打破了软件工程现有的平衡。

根据 Stack Overflow 的调查,近 60% 的开发者使用 AI 来写代码,但只有 10% 的人使用 AI 来进行部署和监控,用 AI 进行代码审查的人也仅有20%出头儿。

这就导致了一个尴尬的局面:

  • 生产过剩:AI 大幅降低了生成代码的成本,代码量激增。
  • 审查瓶颈:人类使用AI审查代码比例不高,而人工审查代码的速度并没有显著提升,导致开发者不得不花费更多时间在 Code Review 上。
  • “洗碗效应”:正如一位开发者所吐槽的:“我希望 AI 帮我洗衣服、洗碗,让我能去搞艺术。但现在是 AI 在搞艺术写代码,而我却在洗碗(修 Bug、调配置)。”

这样一来,在一个代码生成成本趋近于零的时代,代码的可读性、一致性和可维护性变得前所未有的重要。而这,恰恰是 Go 语言自诞生之日起就坚守的阵地。

Go —— 天生适合 AI 的语言

有趣的是,Go 语言的设计者们当年并没有以此为目标,但 Go 却意外地成为了最适合 LLM 生成的语言之一。

Cameron 引用了 Thomas Ptacek 的观点:

“Go 拥有恰到好处的类型安全、丰富的标准库,以及一种推崇(虽然有时显得重复)惯用语的文化。这使得 LLM 生成 Go 代码的效果极佳。”

为什么 Go 对 AI 如此友好?

  1. 强类型与静态检查:能让 AI 生成的代码在编译期就暴露大部分错误,减少运行时调试的痛苦。
  2. 标准库与惯用语:Go 社区高度统一的代码风格和丰富的标准库,为 AI 提供了高质量、一致性极强的训练语料。
  3. 工程化工具链:Go 强大的 gofmt, go vet, gopls 等工具,能帮助人类快速验证和修复 AI 生成的代码。

Go 的“简单”和“显式”,曾经被视为一种对人类的妥协,如今却成为了 AI 时代最大的资产。

破局 —— Go 团队的三大应对策略

面对 AI 带来的挑战,Go 团队并未坐视不管。Cameron 详细阐述了未来的三大战略方向。

解决“停在过去”问题 (Stuck in the Past)

LLM 是基于历史数据训练的,因此它们倾向于生成“老式”的代码(例如使用 ioutil.ReadFile 而不是 os.ReadFile)。

对策Go 团队正在开发 ModernizersAuto-Inliner 等工具,通过自动化的方式,将旧代码一键升级为使用新特性的 Modern Go 代码。这不仅帮助了开发者,也通过更新开源生态,反哺了未来的 AI 模型。

让 AI 使用 Go 工具 (MCP SDK)

AI 不应只是一个生成器,它应该成为一个能使用工具的“智能体”。

对策:Go 团队已经构建了官方的 MCP (Model Context Protocol) SDK。这将允许 AI 助手直接调用 gopls 等工具,理解项目结构、进行类型检查、甚至运行测试。想象一下,你的 AI 助手不仅能写代码,还能自己运行 go test 并修复错误!

质量信号左移

随着 AI 开始自主选择依赖库,我们需要确保它选择的是安全、可靠的库。

对策:Go 团队将把漏洞扫描、质量评分等信号,通过 MCP 等渠道直接暴露给 AI,让 AI 在写代码的第一时间就能做出明智的依赖选择。

Go 生态的“飞轮效应”

演讲的最后,Cameron 展示了一个令人振奋的“飞轮模型”:

  1. 更强的 Go 生态(高质量代码、文档、工具) -> 训练出更懂 Go 的 AI
  2. 更懂 Go 的 AI -> 帮助开发者更高效地构建 Go 应用
  3. 更多的 Go 应用 -> 吸引更多开发者加入社区,贡献更多开源代码
  4. 更多开源代码 -> 进一步增强 Go 生态,回馈 AI 训练

这个飞轮正在加速旋转。Cloudflare 的数据显示,2025 年全球 20% 的自动化 API 请求由 Go 客户端发起,而在 AI 基础设施领域,Go 更是扮演着核心角色。

小结

Cameron 用他对纽约这座城市的热爱作为比喻:“务实、真诚、充满能量”。这不仅是纽约的特质,也是 Go 社区的特质。

在 AI 时代,Go 并没有被边缘化,反而因为其坚守的工程价值观,成为了连接人类智慧与 AI 能力的坚实桥梁。未来不是 AI 取代我们,而是我们与 AI 一起,用 Go 构建出更伟大的软件。

资料链接:https://www.youtube.com/watch?v=M2gduDM-MT0


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

AI 编程的“90% 陷阱”:为什么你生成代码 1 分钟,修 Bug 却要 1 小时?

本文永久链接 – https://tonybai.com/2025/12/17/ai-programming-90-percent-trap-generation-vs-bug-fix

大家好,我是Tony Bai。

在 AI 辅助编程普及的第三年,我观察到一种奇怪的现象,我称之为“AI 时代的开发疲劳”

很多开发者跟我抱怨:

“一开始觉得 AI 简直是神,几秒钟就能生成一个模块。但用久了发现,它生成的代码总是‘乍一看很完美,一跑全是坑’。
简单的逻辑还能应付,一旦涉及到复杂的业务重构,它写的代码往往是 90% 可用,剩下 10% 充满了隐蔽的 Bug、过时的库引用和糟糕的结构。
结果是:AI 帮我省了 30 分钟敲代码的时间,我却花了 2 小时去 Review 和填坑。

这就是典型的“90% 陷阱”

很多人将其归咎于“模型还不够强”,期待下一代 GPT 或 Claude X Opus 能彻底解决问题。

但作为一名长期研究 AI 原生工作流的架构师,我要告诉你一个残酷的真相:

问题不在模型,而在你的工作流。

大多数人还在用“抽盲盒”的方式在通过聊天框(Chat)写代码——这叫 Vibe Coding(氛围编程),而不是 Engineering(工程)。

要跨越这最后 10% 的死亡谷,我们需要把 AI 开发从“聊天”升级为“工程”。以下是我总结的三个核心法则。

法则一:上下文工程 —— 给 AI 发一本“员工手册”

为什么 AI 总是记不住你的代码规范?为什么它总是喜欢用 any 类型,或者引入你明令禁止的第三方库?

因为你把 AI 当成了“搜索引擎”,而不是“新入职的员工”。

每次开启一个新的 Chat Session,对 AI 来说都是第一天入职。如果你不给他发一本“员工手册”,它当然会按照通用的(平庸的)标准来写代码。

破局之道:固化上下文(Context Pinning)。

在 AI 原生开发中,项目根目录下的 规则文件(如 .cursorrules 、CLAUDE.md或constitution.md等)是项目的灵魂。

这不是简单的 Prompt,这是你的架构宪法

  • 不要每次都重复说:“仅使用 Go标准库中的net/http包,别用 第三方web开发框架”。
  • 把它写进规则文件。并且,这是一个动态的过程:一旦 AI 在某次对话中犯了错,不要只在对话框里纠正它,要把纠正后的规则反写回规则文件中。

把规则文件看作是 Live Documentation(活文档)。它是你项目架构、代码风格和最佳实践的“唯一真理来源”。有了它,AI 就不再是那个健忘的实习生,而是懂你习惯的资深搭档。

法则二:模式分离 —— 先做“架构师”,再做“泥瓦匠”

许多人使用 AI 的方式是:直接把一坨复杂的代码扔进去,说“帮我重构它”。

这违背了软件工程的分治思想。LLM 的推理能力是有限的,当它同时兼顾“理解旧逻辑”、“设计新架构”和“编写具体代码”时,它的注意力(Attention)会发散,导致逻辑坍塌。

破局之道:Plan Mode(规划模式)。

高效的 AI 工作流必须将 Planning(规划)Coding(编码) 物理分离。

  1. 阶段一:架构师模式(The Architect)

    • 只与 AI 讨论思路。输入:“我要把这个 Django 模块迁移到 FastAPI,请给出详细的迁移计划和步骤。”
    • 产出物不是代码,而是一个 plan.md
    • 关键点: 人类必须在这个阶段介入 Review。如果 Plan 是错的,代码写得再快也是垃圾。
  2. 阶段二:泥瓦匠模式(The Builder)

    • 确认 Plan 无误后,再让 AI 按照 plan.md 的步骤,一步步生成代码。
    • 此时 AI 不需要思考“怎么设计”,它只需要思考“怎么翻译”。

不要试图 One-shot(一次性)解决复杂问题。 把大任务拆解为小任务,用文档(Markdown)作为上下文传递的介质,这才是工程化的正解。

法则三:契约式防御 —— 用 TDD 锁死 AI 的“幻觉”

“我怎么知道 AI 写的代码有没有隐藏 Bug?”

答案是:你永远不应该信任 AI 写的代码,除非它通过了测试。

在传统开发中,TDD(测试驱动开发)可能显得繁琐。但在 AI 时代,TDD 是性价比最高的“电子围栏”

破局之道:Spec-Driven TDD。

  1. 先写测试(Contract): 不要让 AI 直接写业务代码。先让它根据需求,生成单元测试(Test Cases)。这是你和 AI 签订的“契约”。
  2. 再写实现(Implementation): 让 AI 写代码去跑通这些测试。
  3. 循环验证: 如果测试失败,把报错信息扔回给 AI,让它自我修正(Self-Correction)。

通过 TDD,我们将对 AI 输出质量的“人工主观判断”,转化为了“计算机客观验证”。你不需要肉眼盯着每一行代码,你只需要盯着绿色的 PASS。

小结:从 Vibe Coding 到 AI Engineering

AI 编程的门槛正在急剧降低,但交付高质量软件的门槛并没有变。

那种“凭感觉”随便聊两句就能搞定项目的 Vibe Coding 时代即将过去。未来属于那些懂得如何用文档约束上下文、用规划拆解复杂度、用测试兜底质量的 AI 工程师。

不要沉迷于 AI 的生成速度,要掌控系统的工程质量。


深度实战:构建你的“AI 原生工作流”

理念已经清晰,但落地还需要工具和技巧的支撑:

  • 一份生产级的 CLAUDE.md 到底该包含哪些 section?
  • 如何在 Claude Code 中高效实践 Plan Mode
  • 如何搭建一套自动化的 SDD + TDD 流水线,让 AI 自己写测试、自己修 Bug?

如果你不想再被“90% 陷阱”折磨,希望从“拼运气的聊天者”进化为“掌控全局的架构师”,欢迎关注我的极客时间专栏《AI 原生开发工作流实战》

这不仅仅是一门工具教程,更是一套面向 AI 时代的软件工程方法论。我将带你把这些工程法则转化为可落地的 SOP,真正实现 10x 效率跃迁。

扫描下方二维码,让 AI 真正为你所用。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 AI原生开发工作流实战 从 0 开始构建 Agent Harness Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com
这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats