当前位置: 首页 > article >正文

AI 写代码越快,你的代码库死得越快——除非补上这一层

AI 写代码的速度正在突破人类理解的边界。一个需求丢给 Agent几分钟内产出几百行代码三个 Agent 并行一天能堆出一个模块Cloud Code 协作下团队的交付量翻了两三倍。看起来我们正站在软件工程史上最幸福的时代。但真相是AI 写代码越快你的代码库死得越快。问题不会在第 1 天暴露甚至不会在第 10 天暴露。它像一种慢性病等你闻到代码库腐烂的气味时技术债务已经复利滚到了无法收拾的地步。2026 年主流叙事给出的解药是 SDDSpec-Driven Development。GitHub Spec Kit、Amazon Kiro、Tessl——所有人都在说「Intent is Truth」只要规格写得够细AI 就能稳定输出。我也是这么信的。我们从「想到什么需求就指挥 Agent 开发」的随意状态升级成了基于需求池、设计、实现、测试、上线的标准化流水线。Constitution、Specification、Plan、Tasks 一层套一层规格文档写得前所未有地细。但两周后代码库还是以一种诡异的方式失控了。一、同样的 Spec第 20 个模块和第 1 个模块长得不一样问题最初很隐蔽。第一个 Agent 实现用户模块时把业务逻辑写在了 Application 层。第二个 Agent 处理订单模块时认为「核心业务逻辑应该下沉到 Domain Service」。第三个 Agent 写支付模块时直接绕过了 Repository在 Handler 里调用了原生 SQL。单独看每个模块都能跑通。单独看每个实现都「符合规格」——因为 Spec 里只写了「需要支持用户注册」「需要处理订单状态流转」「需要完成支付回调」并没有规定「这段逻辑应该放在哪一层」。但当我想把这三个模块串起来跑一个端到端流程时我崩溃了。同一个概念在不同模块里有不同的命名。同一种数据流有的走领域模型有的走 DTO 拼接。代码库没有劣化到不能用的程度但它已经开始散发出那种熟悉的、令人不安的气味——技术债务的复利正在累积。这让我意识到一件事SDD 能保证「代码是否忠实实现了规格中的功能描述」但它无法保证「代码在跨模块、跨迭代中保持一致的架构风格」。规格说明可以告诉 AI「要做什么」却无法约束「怎么做」。当多个 Agent 并行工作、codebase 规模扩大时缺乏统一骨架的代码库会迅速劣化。二、SDD 的四个边界我后来复盘把 SDD 的盲区归纳成四个边界。这些边界不是 SDD 的设计缺陷而是它的能力半径。边界一对齐意图但不兜底结构这是最根本的边界。SDD 解决的是「需求 ↔ 代码」之间的对齐问题。只要代码实现了 Spec 里描述的功能SDD 的任务就算完成了。但它不关心• 第 1 个 Agent 生成的模块和第 20 个 Agent 生成的模块是否在架构风格上一致• 跨模块的数据流是否符合统一的领域模型• 新增功能是否复用了已有的领域逻辑还是重复造了轮子• 代码库在长期迭代中是否保持了可维护的拓扑结构类比来说SDD 像是建筑图纸上的「功能布局图」哪里是卧室、哪里是厨房但它不是「结构工程图」承重墙在哪里、地基怎么打。功能布局图可以告诉施工队「这个房间要放一张床」但不会告诉施工队「楼板钢筋应该怎么配」。边界二规格写到多细是个悖论你可能以为规格写得越细AI 的发挥就越稳定。但实际情况是当你试图把「用户下单」这个需求的所有歧义都消灭时你的规格已经膨胀到了 3000 字——包含了状态机、异常分支、数据校验规则、回调时序。这已经不是规格这是披着自然语言外衣的伪代码。Agent 拿到这份「超级规格」后completion 率反而下降了。SWE-AGI Benchmark 验证了这个悖论规格强度增加到某个阈值后AI 的完成率会出现边际递减——因为过长的规格本身就成了新的认知负担Agent 的上下文窗口被规格淹没留给「思考如何实现」的带宽所剩无几。于是你陷入两难•写粗了AI 自由发挥各模块风格不一•写细了规格变成伪代码失去「What vs How」分离的意义AI 还被压垮这意味着靠「把规格写得更细」来兜底代码结构本身就是一条死路。边界三代码阅读瓶颈大于代码生成瓶颈这是最容易被低估的边界。随着 codebase 增长AI Agent 的瓶颈从「生成代码」转向「理解已有代码」。SDD 只管「新功能怎么生」不管「旧代码怎么被理解」。如果代码库没有稳定的结构每次 Agent 介入都需要重新学习一堆碎片化、风格不一的代码。Agent 的上下文窗口被大量「这是啥这怎么工作的」占据留给「我要怎么实现新需求」的带宽就所剩无几。这恰恰是「Agent 烧脑」的技术根因之一——不是 AI 不够强是代码库的结构不够友好导致 AI 把大部分算力花在了「阅读理解」上。边界四多 Agent 的隐性假设冲突这是最隐蔽的边界。即使所有 Agent 共享同一份 Spec不同 Agent 在实现同一服务的不同方法时仍可能对内部状态结构做出不同假设Agent A 认为构造函数返回的是 List of TupleAgent B 认为同一个字段是 Dict of Entity。两者单独看都「符合规格」但集成时会结构性崩溃。这种specification gap是 SDD 单点流程无法解决的——它需要的是代码层面的结构约定。三、关键洞察横向对齐 vs 纵向稳定把上述四个边界放在一起看我意识到 SDD 本质上是一个横向层。它解决的是「从需求到实现」这条水平线上的对齐问题Constitution架构宪法↓Specification需求规格↓Plan技术规划↓Tasks可执行任务↓Implement代码实现↓Validate验证这条链路确保了「意图不被扭曲」。但它没有回答一个问题实现之后的代码在垂直方向上如何保持结构稳定代码库的健康度不仅取决于「每一行代码是否实现了正确的功能」还取决于• 不同模块之间是否有统一的领域模型• 业务逻辑是否被正确地分层和隔离• 查询和命令是否被合理地分离• 新增代码是否自然地嵌入已有架构而不是打补丁这需要一个纵向层从战略设计到战术设计从领域边界到代码骨架从接口契约到实现填充。SDD 负责横向对齐DDD CQRS 负责纵向稳定。两者不是竞争关系而是互补的两极。四、解法上篇DDD 提供领域骨架在 AI Coding 之前DDD领域驱动设计是个「高手专属」的方法论。它要求架构师对业务有深刻理解同时熟练掌握 DDD 的各种概念和模式。但在 AI Coding 环境下DDD 的门槛被大幅降低了——你可以把业务人员的调研内容直接喂给 AI让它辅助输出战略设计和战术设计。更重要的是DDD 给 AI 提供了「领域层面的确定性」。战略设计划定边界战略设计的核心是限界上下文Bounded Context。它明确了• 哪里是核心域哪里是支撑域• 不同业务模块之间的边界在哪里• 跨上下文的集成方式是什么这相当于给 AI 画了一张「行政区划图」。当 Agent 接到一个新需求时它首先知道「这个功能属于哪个上下文」不会把用户逻辑写到订单里也不会把支付逻辑泄漏到库存中。战术设计统一结构战术设计深入到每一个具体需求的实现层面。它规定了• 聚合根Aggregate Root是什么• 实体Entity和值对象Value Object怎么区分• 领域服务Domain Service和应用服务Application Service的边界在哪里• 统一语言Ubiquitous Language贯穿规格、代码和对话这相当于给 AI 提供了一套「建筑规范」。Agent 不再自由发挥而是在既定的结构里填充内容。五、解法下篇CQRS 提供代码容器如果说 DDD 提供了「领域层面的骨架」那么 CQRS 提供了「代码层面的容器」。CQRSCommand Query Responsibility Segregation在 AI Coding 下的价值被放大了因为它给 AI 提供了一个高度可预测的「填充模板」。Command命令定义↓Command Handler业务处理↓Application Layer应用层编排↓Domain Layer领域逻辑↓Entity / Aggregate实体/聚合↓Repository仓储接口↓Unit of Work工作单元↓Infrastructure基础设施实现对 AI 来说这不是一个抽象概念而是一个「每次收到需求都知道往哪里填代码」的确定性结构。• 读需求 → 提取 Command → 写 Handler → 调用 Domain Service → 持久化到 Repository• 查询需求 → 绕过 Domain 层 → 直接用 SQL/DTO 拼接 → 返回 Read Model这种「骨架固定、血肉可变」的模式极大提升了 AI 在大型 codebase 中的输出稳定性。因为骨架是固定的Agent 不需要猜测「这段逻辑应该放在哪里」。它只需要判断「这是一个命令还是一个查询」然后沿着既定的层次结构填充即可。同时Repository 层天然适合 TDD测试驱动开发。你可以先写测试让 AI 实现 Repository 接口再验证行为。这进一步提高了代码质量的确定性。六、我们的实践时间分配与流水线的转变在我们的团队里这套方法论带来了两个显著变化。变化一从「随意指挥」到「骨架先行」以前产品经理丢一个需求过来我们直接把它喂给 Agent「实现一个用户注册功能。」Agent 自由发挥代码能跑但结构各异。现在我们的流水线是1. 从原始需求中提炼信息形成文档2. 将文档交给 AI输出 DDD 的战略和战术设计3. 基于设计文档让 AI 按照 CQRS 的结构进行编码和测试4. 人工审查集中在「设计是否正确」和「骨架是否健康」Agent 不再从零开始创造结构而是在既定的骨架内填充领域逻辑。变化二时间分配的根本反转我们做了一个粗略的统计•60% – 80%的时间花在需求和设计的 Review 上•20% – 40%的实现和自动化测试工作交给 AI这意味着人类的核心价值不再是「写代码」而是「定义结构」和「判断结构是否健康」。虽然在 AI Coding 时代你不需要了解每一个方法实现的细节但你必须对整个代码的骨架层次、领域边界、模块拓扑有清晰判断。只有这样才能持续保障代码库处于一个相对健康的状态。七、结论AI Coding 的完整公式回到文章开头的问题SDD 是不是 AI Coding 的终极答案我的回答是SDD 是必要非充分条件。没有 SDDAI 编程就是高级的 vibe coding——需求漂移、上下文丢失、Agent 各行其是。但只有 SDD没有结构层兜底codebase 会在 3–6 个月内劣化到难以维护。Matt Pocock 警告过「specs-to-code 是在撤资系统设计」。我的进一步判断是SDD 本身不是撤资SDD 被误用为「替代架构」时才是撤资。正确的用法是把 SDD 当作「意图层的基础设施」同时在下方铺设 DDD/CQRS 的「结构层地基」。最终AI Coding 的完整公式可以写成SDD 保证「做的对」→ 功能符合需求DDD/CQRS 保证「做的稳」→ 代码库不劣化、可维护、可扩展或者更简洁地说骨架稳定 血肉自动生成。在这个范式下人类负责不可压缩的复杂性——领域边界、战略设计、接口契约。AI 负责可自动化的复杂性——CRUD、boilerplate、测试桩。2026 年的 AI 编程所有人都在比拼「生成速度」但真正的高手在比拼另一件事谁能在闪电般的产出中保持代码库的长期健康。速度是廉价的。结构才是杠杆。你正在用 AI 写代码吗你的代码库是越写越健康还是越写越改不动如果你也踩过「AI 写得快、改不动」的坑欢迎聊聊你的真实经历和应对方法。本文方法论基于团队真实实践相关技术背景可参阅《领域驱动设计》《实现领域驱动设计》及 GitHub Spec Kit 官方文档。

相关文章:

AI 写代码越快,你的代码库死得越快——除非补上这一层

AI 写代码的速度正在突破人类理解的边界。一个需求丢给 Agent,几分钟内产出几百行代码;三个 Agent 并行,一天能堆出一个模块;Cloud Code 协作下,团队的交付量翻了两三倍。看起来,我们正站在软件工程史上最幸…...

蜂鸟E203 SoC实战:在FPGA上搭建RISC-V开发环境并运行第一个程序(Vivado/Quartus教程)

蜂鸟E203 SoC实战:在FPGA上搭建RISC-V开发环境并运行第一个程序 在嵌入式开发领域,RISC-V架构以其开放性和模块化设计正掀起一场革命。作为国内领先的RISC-V处理器核,蜂鸟E203凭借其精简高效的流水线设计和完整的SoC解决方案,成为…...

新手盆景避坑指南:从零开始的养护秘诀,90%的人都踩过的坑

新手养盆景,90%的人都会犯的5大错误。本文从选材、浇水、施肥、修剪到病虫害防治,拆解实操步骤,帮你避开常见坑,从零开始养护盆景。附真实案例和图片,适合技术图文阅读。**新手盆景避坑指南:从零开始的养护…...

“ConnectionResetError”凌晨三点炸群?Python数据库适配稳定性军规(含12项生产环境Checklist)

更多请点击: https://intelliparadigm.com 第一章:ConnectionResetError凌晨三点炸群?Python数据库适配稳定性军规(含12项生产环境Checklist) 凌晨三点,告警群突然刷屏:ConnectionResetError: …...

GoLLIE:基于大语言模型的零样本信息抽取实战指南

1. 项目概述:当大语言模型学会“看图说话”式的结构化信息抽取最近在信息抽取和结构化数据生成领域,一个名为GoLLIE的项目引起了我的注意。它不是一个全新的模型,而是一个基于开源大语言模型(如Code Llama)进行指令微调…...

3分钟搞定Windows安卓应用安装:APK Installer的终极秘籍

3分钟搞定Windows安卓应用安装:APK Installer的终极秘籍 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经为在电脑上运行安卓应用而烦恼&#xff…...

德州仪器75亿美元收购Silicon Labs:物联网芯片市场格局重塑

1. 德州仪器收购Silicon Labs:7.5亿美元交易背后的产业逻辑2027年半导体行业首桩重磅并购案终于浮出水面——德州仪器(TI)将以每股231美元的价格全资收购Silicon Labs,交易总价值达到惊人的75亿美元。这不仅是近五年来模拟芯片领域…...

2026年值得关注!AI大模型接口代理网站推荐,满足不同场景需求

在2026年,AI工业化落地的浪潮席卷了各个行业。大模型API中转平台从原本的“可选工具”,已经升级成为开发者必备的基础设施。 国内开发者面临的稳定性挑战 国产大模型的能力日益强大,但它们的API稳定性能否经受住生产环境的考验,…...

数据结构与算法学习日志12

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言递归暴力递归的特点[231. 2 的幂](https://leetcode.cn/problems/power-of-two/)怎么写出递归:递归实现二分查找总结前言 提示:这里可以…...

Sunshine游戏串流终极指南:三分钟搭建你的跨平台游戏服务器

Sunshine游戏串流终极指南:三分钟搭建你的跨平台游戏服务器 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经梦想过在客厅的沙发上用电视畅玩PC大作&#xff…...

WindowsCleaner:基于Python与PyQt的Windows系统资源管理技术方案

WindowsCleaner:基于Python与PyQt的Windows系统资源管理技术方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner WindowsCleaner是一款采用现代Python…...

魔兽争霸3终极优化插件:5分钟解锁完整游戏体验

魔兽争霸3终极优化插件:5分钟解锁完整游戏体验 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电脑上的各种限制而烦…...

Jasminum插件:Zotero中文文献智能元数据识别与PDF大纲管理技术解析

Jasminum插件:Zotero中文文献智能元数据识别与PDF大纲管理技术解析 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum Ja…...

基于回归语言模型的代码性能预测实践

1. 项目背景与核心价值代码性能预测一直是软件开发中的关键挑战。传统方法依赖人工经验或静态分析工具,往往难以准确预估程序在真实环境中的运行表现。最近我在一个编译器优化项目中,尝试将回归语言模型引入这个领域,取得了比预期更好的效果。…...

观察不同模型在taotoken平台上的实际响应速度差异

观察不同模型在 Taotoken 平台上的响应速度表现 1. 测试环境与模型选择 本次测试基于 Taotoken 平台提供的统一 API 接入能力,选取了模型广场中来自不同厂商的四个代表性模型进行对比观察。测试环境为本地开发机通过公网直连 Taotoken 服务端,网络延迟…...

TokRepo:AI时代开发者的开源资产库,统一管理提示词与MCP配置

1. TokRepo:一个为AI时代开发者与智能体打造的开放资产库如果你和我一样,每天都在和Claude Code、Cursor、Codex这些AI编程工具打交道,那你肯定遇到过这样的烦恼:想找一个好用的提示词(Prompt)模板&#xf…...

基于GPT的自动化简报生成器:从信息收集到AI总结的完整实践

1. 项目概述:一个为ChatGPT设计的简报生成器最近在折腾AI应用落地的过程中,我发现了一个挺有意思的GitHub项目:huangjia2019/chatgpt-briefing。顾名思义,这是一个利用ChatGPT(或者说,是OpenAI的GPT系列模型…...

Nuclei SDK 嵌入式开发实战:从入门到深度定制指南

1. 从零开始:理解 Nuclei SDK 的定位与价值 如果你正在或即将接触基于 Nuclei 处理器的 RISC-V 嵌入式开发,那么 Nuclei SDK 绝对是你绕不开的核心工具。它不是另一个简单的“外设驱动库”,而是一个为 Nuclei 评估 SoC 量身定制的、完整的软件…...

大模型评估与对齐:核心挑战与实践指南

1. 大模型评估与对齐的核心挑战当我们谈论大语言模型时,评估和对齐这两个概念就像硬币的两面。评估是测量模型表现的过程,而对齐则是确保模型行为符合人类期望的持续调整。这听起来简单,实际操作中却充满微妙挑战。评估的难点在于&#xff0c…...

RWKV.cpp:用C++实现RNN架构大模型的高效本地推理引擎

1. 项目概述:当Transformer遇见RNN的下一代推理引擎如果你最近在关注大语言模型(LLM)的本地部署和推理优化,那么“RWKV”这个名字大概率已经进入了你的视野。它不像Transformer那样广为人知,但其背后“用RNN架构实现Tr…...

开源成本监控利器costclaw-telemetry:云原生环境下的成本数据自动化采集实践

1. 项目概述与核心价值最近在折腾一个内部成本监控项目,发现了一个挺有意思的开源工具——queenvest0-ux/costclaw-telemetry。乍一看这个名字,costclaw(成本之爪)和telemetry(遥测),就能猜到它…...

本地大语言模型现代化Web界面:llm-ui部署与配置实战指南

1. 项目概述:一个为本地大语言模型设计的现代化Web界面如果你和我一样,热衷于在本地部署和运行各种开源大语言模型(LLM),那么你肯定经历过一个共同的痛点:如何与这些模型进行高效、美观的交互?命…...

REFINE框架:基于强化学习的长上下文建模优化方案

1. 项目背景与核心价值在自然语言处理领域,长上下文建模一直是个棘手的问题。传统Transformer架构在处理长序列时面临两大瓶颈:一是注意力机制的计算复杂度随序列长度呈平方级增长,二是模型在长距离依赖捕捉上表现欠佳。REFINE框架的提出&…...

GPT-4 API调用计数器实战:精细化成本监控与性能优化指南

1. 项目概述:一个被低估的API调用计数器如果你正在开发或维护一个重度依赖GPT-4这类大语言模型API的应用,那么“调用成本”和“用量监控”这两个词,大概率会让你心头一紧。无论是个人开发者测试新想法,还是团队在构建一个面向用户…...

新手福音:在快马平台通过交互式示例轻松入门Harness持续交付

作为一个刚接触DevOps的新手,第一次听说"Harness持续交付"这个概念时,整个人都是懵的。那些专业术语像天书一样,直到我在InsCode(快马)平台上发现了这个交互式学习项目,才真正搞明白这些概念到底是怎么回事。 为什么需要…...

Qwen3-7B大模型私有化部署与隐私保护实践

1. 项目背景与核心价值最近在开源社区引起广泛关注的Qwen3系列大语言模型,凭借其优秀的性能表现和完全开放的开源协议,正在成为许多开发者和企业进行私有化部署的首选方案。但实际落地过程中,我们发现两个关键痛点:一是通用基座模…...

基于shadcn/ui与Tailwind CSS构建Neobrutalism风格React组件库

1. 项目缘起与设计哲学 如果你最近在逛一些设计社区或者前端开发者的社交平台,可能会频繁看到一个词: Neobrutalism 。它不再是建筑领域那个冷冰冰的“粗野主义”,而是演变成了一种充满活力、大胆甚至有点“叛逆”的数字设计风格。高饱和度…...

效率提升秘籍:用快马一键生成openmaic网页版对话管理核心模块

提升开发效率的秘诀:用快马一键生成openmaic网页版对话管理核心模块 最近在开发一个类似openmaic的网页版AI对话应用时,我发现对话管理模块虽然基础但特别耗费时间。每次都要重复编写类似的代码来处理对话的增删改查和持久化存储,效率实在太…...

你的AI Agent为什么总在“来回改“?一次真实实验给出的答案 ——融合控制工程PID的Harness实践

你的AI Agent为什么总在“来回改“?一次真实实验给出的答案 ——融合控制工程PID的Harness实践 文章目录你的AI Agent为什么总在“来回改“?一次真实实验给出的答案 ——融合控制工程PID的Harness实践从真实实验说起结果一览1. 你的Agent迭代系统&#x…...

NativeTok:动态视觉词汇表提升图像生成语义理解

1. 项目背景与核心价值在当前的图像生成领域,我们常常遇到一个根本性矛盾:模型对文本提示的理解深度,直接决定了生成图像的质量和准确性。传统基于CLIP等编码器的文本-图像对齐方式,在处理复杂语义时容易出现"概念漂移"…...