打开技术社区,随处可见“AI抹平开发门槛”“代码已经变得廉价”这类声音。仿佛只要学会描述需求,普通人就能完成软件开发,传统软件工程的一套方法论已经成为过时的旧时代产物。
但真实项目里的场景却截然相反。不少团队把AI接入日常开发之后,短期看上去产出暴涨,几个月之后,项目却逐渐失控:代码文件越来越碎片化,依赖关系错综复杂,bug层出不穷,修改一处功能就要牵动大半个工程。工程师大部分时间不是在开发新特性,而是在收拾AI生成代码留下的烂摊子。
TypeScript领域知名研究者Matt Pocock,过去一年半持续观察大量开发者使用AI智能体完成真实业务项目,他看到无数组对照案例:硬件环境一致、模型版本一致、业务需求完全相同,有的开发者四十分钟完成需求,顺带补齐测试用例;有的开发者从上班折腾到下班,代码越改越臃肿,最后只能回退到几天前还没接入AI的版本。
巨大的效率鸿沟,根源不在于谁的提示词写得更华丽,也不在于选用价格更昂贵的大模型。Matt得出一个非常反直觉的结论:AI不是均衡器,而是放大器。它不会抹平代码库原本的缺陷,只会将代码库原本的面貌成倍放大;软件工程的基本功非但没有贬值,反而被赋予了前所未有的杠杆效应。
AI可以承担敲代码这种战术执行工作,但代码的所有权必须牢牢掌握在开发者手中。我们不必逐行手动敲写每一段代码,但必须做到随时能够读懂、修改、接管整套代码。一旦把代码控制权完全交给AI,再强大的模型也无法阻止技术债务疯狂累积。
别陷入误区:“写规格自动生成代码”
是伪装成新范式的旧陷阱
当下有一套备受追捧的开发模式:维护一份详尽的规格说明书,交给AI直接产出完整代码;出现bug或者需求变更,不去触碰已经生成的代码,只修改文档,重新让模型输出一遍程序。支持者将这套流程类比为汇编语言升级高级语言,认为人类只需要专注写文档,编码完全交给机器即可。
听起来十分美好,仿佛软件开发即将进入文档驱动的全自动时代。但Matt亲自完整跑过三轮完整迭代之后,果断放弃这套流程。第一轮生成的代码尚且可以正常运行;第二轮迭代质量就出现明显滑坡;等到第三轮,产出的代码已经风险过高,完全不敢投入实际业务环境。
究其本质,这套文档驱动生成代码的模式,和被业内诟病的 “感觉式编码(vibe coding)” 本质同源,只是换了一层包装外壳。核心问题就是放弃人类对于代码的所有权,把系统实现全盘交付给大模型自主发挥。
很多人存在一种误解:AI既然可以生成代码,那代码就变得廉价,写错了重新生成一份就好。可现实恰恰相反:普通代码或许生成成本很低,但混乱糟糕的坏代码,是整个软件行业成本最高的资产。
整洁有序的代码仓库中,AI可以如虎添翼,加速迭代;而本身架构混乱、命名随意、边界模糊的项目,AI只会放大所有历史遗留问题,制造更多耦合、碎片化的逻辑,进一步抬高后续维护成本。大模型没办法凭空修复代码库底层的结构性缺陷,提示词优化、更换更强的模型,都弥补不了工程底子上的短板。
GitHub上曾经有一份爆红项目,通篇只有Markdown文本,没有一行可运行代码,上线短时间收获三万多Star。这份由Matt维护的文档能够爆火,并不是因为提供了神奇的prompt咒语,而是它戳破行业幻想:AI时代,真正值钱的不是生成代码的技巧,而是几十年沉淀下来“软件工程思维”。
开发全周期六大陷阱:
AI协作路上的隐形绊脚石
在和AI智能体协同开发的完整链路中,坑点分布在需求对齐、编码实现、规模扩张三个不同阶段。很多团队踩坑之后,第一反应是调整模型参数、优化提示词,但实际上大部分问题,根源来自人和AI之间协作机制的缺失。下面结合项目实践,拆解开发全流程中高频遇到的六大典型问题,以及对应的解决思路。
阶段一:编码尚未启动,风险已经埋下
还没有写下第一行代码,误解和偏差就已经悄悄埋下,这是很多项目后期失控的起点。
陷阱 1:脑海中的构想,和AI输出结果完全错位
软件开发最头疼的场景之一:你内心设想好一套完整业务逻辑,把需求交代给AI,最终拿到一份看起来结构完整、语法没有报错的代码,实际运行才发现,实现的完全是另外一套逻辑。
Brooks在《设计的设计》书中提出“设计概念”这个概念:团队协作开发时,成员脑海中会存在一套没有落纸成文的共识构想。人与人之间对齐这套隐形共识,尚且需要反复沟通确认;大模型完全没有办法天然感知开发者脑海里的隐性想法,出现理解偏差几乎是必然事件。
针对这个痛点,Matt提出grill-me的协作思路:不急于立刻输出开发计划,让AI化身细节审问者,一次抛出一个问题,同时附带参考倾向性答案,沿着业务设计的分支逐层深挖,把潜藏在人脑里没有写出来的设计构想全部挖掘出来。整个过程会经历数十轮问答,上一轮的回答直接作为下一轮提问的输入素材。
这和很多编辑器内置的plan模式有着本质区别:plan模式追求快速输出一份计划文档,尽快进入编码环节;而grill-me愿意牺牲速度,优先把模糊的想法转化为明确可落地的共识。慢在这里不是缺点,而是规避后期大规模返工的前置成本。
陷阱 2:语法逻辑没问题,但整体风格、术语和团队语境格格不入
还有一类更加隐蔽的问题:AI产出的代码逻辑、功能全部符合要求,但是变量命名、业务术语、实现习惯和团队习惯完全脱节。
领域驱动设计中的“通用语言”理论告诉我们:业务沟通、代码命名、和业务方交流,三者应当使用同一套统一术语。一旦三套语境各自独立,沟通成本会指数级上涨,这套逻辑同样适用于人与AI协作。如果模型不熟悉项目内部的业务名词,即便需求描述清晰,写出来的代码依然会出现语义割裂。
对应的解决方案是维护一份仓库级业务术语清单:工具通读现有代码库,抽取项目中高频业务名词,整理为Markdown表格。每一次规划开发任务,都把这份术语表一同喂给大模型。经过实践观测,导入术语表之后,不仅仅最终代码输出会统一用词,就连模型内部推理思考的过程,都会主动沿用项目既定领域词汇,从源头减少命名混乱。
阶段二:编码进行中,代码结构悄然发生变质
需求已经对齐,正式进入开发环节,新的风险接踵而至,代码库会在迭代中悄悄腐化。
陷阱 3:功能看似全部完成,程序却无法正常运行
需求沟通全部到位,AI输出完整功能模块,但是组装之后程序跑不起来。大部分开发者第一反应是补充测试用例,但是问题往往不在于测试数量不足,而在于测试执行的时机完全滞后。
大模型的天然倾向,是一口气把整套业务功能全部写完,等到全部逻辑落地之后,才回头补充测试脚本。《程序员修炼之道》将这种状态比喻为“行驶在前灯照射范围之外”:车辆向前疾驰,灯光照不到前方道路,开发者完全无法预知潜藏的隐患。
这里需要复用测试驱动开发TDD的经典范式,严格执行红-绿-重构流程:先编写注定失败的测试用例,再实现最少业务代码让测试通过,最后开展重构优化。强制让测试跑在业务实现前面,颠倒AI默认的开发顺序。
反馈速度决定迭代推进的上限。类型校验、静态扫描、秒级就能跑完的单元测试,价值不在于测试覆盖率的数字,核心价值在于压缩反馈周期,尽早暴露问题,不要等到大量代码写完之后才集中发现错误。
陷阱 4:持续迭代之后,代码库越改越混乱
很多项目越维护文件数量越多,模块划分细碎,互相之间纠缠耦合,也就是俗称意大利面条代码。这个现象背后,可以借用《软件设计哲学》中“深模块、浅模块”的概念来解释。
浅模块,指的是对外暴露一大堆接口、每个模块内部只装了很少业务逻辑的写法:文件被切得又细又碎,模块之间互相依赖、牵一发动全身。打个比方,它就像把一件事拆到十几个小窗口里办,你得挨个窗口跑一遍,谁都记不住全貌。我们维护这类代码库已经十分煎熬;对AI智能体来说,它要在有限的上下文里还原整张依赖关系图,一旦理解断了,就会继续新增更多细碎的文件,把项目搞得越来越乱。
深模块恰恰相反:对外只露出少数几个简洁的接口,把复杂的业务逻辑全部封装在模块内部,调用方只需要知道“给它什么、拿回什么”,不用管里面是怎么实现的。打个比方,它就像一个只开一个窗口的办事大厅,你交材料、拿结果,剩下的流程在里面自己跑完。深模块也更容易验证:只需要在外部针对接口契约写测试,不必钻进内部实现。
Matt还用过一个叫代码库架构优化(Improve-codebase-architecture)的工具。作用说起来很简单:把整个项目从头扫一遍,找出那些被拆散、又互相纠缠的代码,给出“哪几块应该收拢到一起”的重构建议,引导项目长出更多深模块。他用一个浏览器里的视频剪辑工具做例子:把从界面到服务端的一整条链路收拢成一个深模块之后,AI在这个仓库里的表现有了质的提升。
阶段三:项目规模扩张,上下文触达天花板
随着交付功能越来越多,系统体量持续上涨,会遇到两类规模带来的难题。
陷阱 5:交付成果越来越多,但是开发者对系统全局感知持续弱化
AI不断产出新代码,系统信息量爆炸,人脑很难完整记住全部实现细节,开发者对于整体系统把控感不断下降。
深模块的设计思想刚好可以应对这个局面:把模块当成灰盒看待,接口契约由人类定义,对外行为由人工验收校验,内部具体实现交给AI完成,不必逐行阅读内部每一行代码。正如 Kent Beck(极限编程之父) 提出的理念:每天都要为系统设计投入精力。人类负责划定系统边界,把具体实现工作委派出去。
这也是为什么文档驱动直接生成代码模式不可持续的深层逻辑:完全依赖修改规格产出代码,本质是持续消耗前期系统设计积累下的资产;健康的项目应该持续投入设计,而不是不断透支。
陷阱 6:上下文超限,模型进入“愚蠢区”输出持续走样
大模型存在一个客观边界,Matt将对话上下文划分为“智慧区”与“愚蠢区”。当token总量接近十万这个阈值之后,模型注意力负担呈平方级别增长,输出质量明显下滑,推理开始频繁出错。哪怕厂商宣称支持超大上下文窗口,这种性能衰减现象依然客观存在。
大型开发任务无法一次性塞进单次对话上下文;如果采用线性任务计划,所有步骤交由同一个智能体顺序执行,很容易直接落入愚蠢区。
解决方案是把大型任务拆解为DAG有向无环图看板,明确标记任务之间依赖约束;不存在依赖阻塞的卡片,允许多个智能体并行接手执行。Sand Castle库就是这套思路的落地实现:规划模块识别任务依赖,为可并行任务分配独立Docker沙箱,多个实现智能体同步开展开发;完成之后专门的合并组件处理冲突。同时做好角色分工:普通编码任务使用性价比更高的模型,评审环节调用能力更强的模型;最重要一点,评审环节需要清空历史上下文,保证评审工作始终运行在智慧区,避免被大量旧对话干扰判断。
完整协作流水线:
厘清人与AI各自的权责边界
上述的工具和方法论,不是零散独立的技巧,可以串联起一套完整从模糊需求到交付迭代的闭环工作流。
从一个朦胧业务想法出发,首先借助盘问式对话完成需求共识对齐,沉淀标准化需求文档;再把需求拆解为一张张垂直切片录入任务看板;交由AI智能体按照TDD规范并行完成编码与测试;人类接手执行QA与代码评审;评审中新浮现出来的需求、缺陷,重新回流到看板,开启新一轮循环迭代。
这套流程有三个极易被跳过,但至关重要的细节:
第一,任务采用垂直切片,拒绝水平分层开发。大模型天生习惯按层级分开做:先把所有数据库表设计完,再开发接口,最后做前端页面。这种方式要等到最后一层做完,东西才能跑起来,问题也就全堆在开发末期才暴露。所谓一次做完一个完整功能,也就是曳光弹开发思路(先打通一条完整链路):一个任务里同时包含存储改动、后端逻辑和极简界面,一次把数据库、接口、界面所有层级都贯穿。这样做完一个任务,立刻就能拿到能跑、能验证的结果,方向跑偏也能早点发现。
拿合同台账这个功能举例:按层级分开做,就是第一步设计合同数据表,第二步开发接口,第三步做台账页面;垂直切片则是第一步就把“录入一份新合同、并在台账列表里查到它”整件事做完,数据表、接口、极简界面、测试全部包含在内,虽然功能简陋,但是完整链路直接跑通。
第二,对话上下文快装满了,直接清空重开,别做历史压缩。当对话上下文即将耗尽,有两条路径可选:把全部历史压缩摘要继续运行,或者直接归零重启会话。Matt更推荐后者。在模型已经进入质量下滑状态下继续压缩,错误会层层叠加不断累积;清空上下文重新开始,可以保证每一轮工作都建立在稳定起点之上。
第三,权责边界清晰划分。需求盘问、编写产品需求文档(PRD)、拆解任务,这些属于先想清楚的顶层设计环节,必须由我们自己主导;具体编码实现可以放手交给AI智能体;验收评审环节重新回到我们手中。评审是把工程判断注入项目的关键节点:代码风格怎么取舍、异常情况怎么兜底、可读性优先于炫技写法,这类价值判断,现阶段大模型还替不了我们。AI可以高效完成执行,但系统架构、业务语义、质量取舍,决策权必须握在开发者手里。
落地实践路线:
分短期、中期、长期逐步改造项目
想把AI的编码生产力真正释放出来,不必一上来就搞大规模重构,可以按短期、中期、长期三步慢慢改造,把过去积累的软件工程基本功,变成人机协作的杠杆。
短期:沉淀统一业务术语,低成本消除理解鸿沟
把业务术语表当作项目的核心资产,放在代码仓库根目录里,跟着业务迭代一起更新,每一次提交代码请求合并(PR,Pull Request)时,顺手维护这份文档。这件事成本很低,却能从源头减少命名混乱、AI理解业务偏差,让模型输出代码贴合团队自身业务语境。很多团队忽略这件小事,不停在提示词里重复描述业务名词,却没有一份可以复用、随项目演进的统一术语资产。
中期:打造高速反馈闭环,快速拿到报错信息
短期做完后,AI起码学会说“我们的话”了;接下来更关键的是:它写得飞快,可对不对,要等多久才知道?这一步就是把持续集成流水线(CI)改成快速反馈通道——代码一提交,机器自动编译、查错、重跑一遍老功能,几分钟内给结论。举个具体的例子:员工报销系统里,AI改了差旅补贴的计算规则,提交时没查出问题,两周后才发现金额算错——可这期间几百份报销单早已批完、打完款、并入当月费用报表,财务要逐张退单重算,还得跟员工解释钱为什么又被扣回去。要是当时有几条单元测试当场跑出差额,它几秒钟就能改掉,后面这一串压根不会发生。
AI是放大器:反馈越短它纠错越快,拖上几天,它就带着错误一路往前冲。所以这一步不看测试写得多全,只看检查跑得多快——类型检查、静态扫描、秒级单元测试串到同一条流水线上,从十几分钟压到几十秒。
长期:持续推进架构重构,优先打造深模块
重构的目标,不是单纯删减文件、整理代码格式,核心目标是降低外部调用方认知负担。优先收拢零散的业务逻辑,持续打造接口干净的深模块,把复杂性封装在模块内部。对外暴露的概念越少,系统边界越清晰,不管是我们自己维护,还是AI生成修改代码,出错、跑偏的概率都会显著下降。坚持每天投入一部分精力做系统设计,不要等到项目彻底失控才被迫大规模重构。
结语
AI给软件研发带来前所未有的生产力红利,但它不会自动保障工程质量。再强大的模型、再精巧的提示词,都拯救不了结构混乱的代码仓库。
很多开发者担心AI时代多年积累软件工程基本功会变得无用。事实恰恰相反:敲代码这种重复性执行工作可以交给AI,但需求共识对齐、系统边界定义、业务语义统一、质量权衡取舍,这些核心工作,依旧只能依靠开发者完成。
把机械编码执行交给AI,牢牢握住工程决策权,才可以真正享受AI带来产能提升,而不是无休止被AI制造的技术债务消耗精力。工具永远只是放大器,真正决定上限的,始终是开发者沉淀多年的软件工程底层能力!
附:文中人物与名词解释一览
出场人物
Matt Pocock:TypeScript 领域研究者、教育者。XState 核心团队成员,曾在 Vercel 负责开发者教育,创办的 Total TypeScript 课程被很多工程师当作这门语言的标准教材。文中关于 AI 编程的观察,主要来自他这一年半的实践。
Frederick Brooks:图灵奖得主,IBM System/360 及操作系统 OS/360 的主持开发者,著有《人月神话》《设计原本》。
Kent Beck:极限编程(XP)的提出者、测试驱动开发(TDD)的倡导者,《敏捷宣言》签署人之一。
关键名词(按文中出现顺序)
AI 智能体(AI Agent):能自己规划步骤、调用工具、连续完成一串任务的 AI 助手。
提示词(prompt):交给 AI 的指令文字。
Markdown:一种纯文本写作格式,用简单符号就能标出标题、表格。
感觉式编码(vibe coding):不看也不懂生成出来的代码,只凭感觉让 AI 反复重写。
技术债务:为赶进度留下的隐患,后面要加倍的时间来偿还。
盘问式对话(grill me):Matt 提出的协作方式:先让 AI 反过来一句句追问你,把想法问清楚再动手。
计划模式(plan mode):很多编辑器自带的功能,先让 AI 出一份方案,再开始写代码。
通用语言:业务沟通、代码命名、和业务方交流,三者都用同一套术语。
浅模块:对外接口又多又杂、每个模块只装一点点逻辑、文件切得又细又碎的写法。
深模块:对外只露少数几个接口,把复杂逻辑全部封装在模块内部的写法。
灰盒:不看内部实现,只按约定好的接口验收结果。
代码库架构优化(Improve-codebase-architecture):Matt 用过的工具:把整个项目扫一遍,给出“把哪些代码收拢到一起”的重构建议。
测试驱动开发(TDD,Test-Driven Development):先写测试,再写代码让测试通过,最后做重构。
红-绿-重构:TDD 的三步:先写一个必然失败的测试(红),用最少代码让它通过(绿),再做重构。
垂直切片:一个任务一次做完一个完整功能,数据库、接口、界面全部贯穿。
水平分层(按层级分开做):先写完全部数据库,再开发接口,最后做前端页面。
曳光弹开发:先打通一条完整链路,让结果尽早可见,就像曳光弹打出后能看清弹道。
token:模型处理文字的最小计量单位,也用来衡量一轮对话能装多少内容。
智慧区 / 愚蠢区:Matt 的说法:上下文接近十万 token 之后,模型输出质量明显下滑,就是进了“愚蠢区”。
有向无环图(DAG,Directed Acyclic Graph):一张任务流程图,任务之间有先后依赖,不会绕回头。
Sand Castle(沙堡):Matt 用的工具库:按依赖关系给可并行的任务分配独立环境,完成后再统一合并。
Docker 容器沙箱:把每个任务的运行环境单独隔离出来的容器。
持续集成流水线(CI,Continuous Integration):代码提交后自动编译、自动检查、自动跑测试的一整套流程。
类型约束:每个数据事先定好类型,用错了立刻报错。
自动反馈机制:让错误在第一时间暴露出来的那套自动校验(类型检查、静态扫描、单元测试等)。
合并请求(PR,Pull Request):把代码变更提交给同事评审的一次请求。
产品需求文档(PRD,Product Requirement Document):把需求写清楚的一份文档。
质量验收(QA,Quality Assurance):对交付结果做人工检查和确认。
衡泽软件
衡泽软件成立于2014年,注册资本5000万,由管理咨询及数字化领域资深专家团创立。秉持“以科技为本、与客户同路、与时代同步”理念,依托十年自研【衡泽-iDP】技术底座,深度融合原生AI,为企业提供【咨询+ERP+AI】全域解决方案,致力成为AI时代软件研发范式定义者与软件智造引擎供应商。
公司专注于企业端的AI应用产品、垂域专业模型、ERP+AI的研发,行业聚焦智慧地产、智慧制药、智慧能源、智能制造、智慧CRM等领域,提供企业ERP、大数据、AI应用产品和解决方案服务,帮助企业实现AI时代下的智慧化转型升级。
公司还联合多家高校、科研单位,基于计算机视觉、知识图谱、深度学习等核心人工智能算法,形成了多行业的人工智能产品及解决方案,推出极具创新性、先进性、行业影响力的AI产品【衡泽-ERP全面AI化】及【衡泽-AD7】,实现了商业化落地。
旗下首创的智能研发平台【衡泽-AD7】以AI全链路赋能研发需求解析、开发设计、代码自动化构建、智能测试与编译部署全过程,实现需求开箱即用,成为软件产品研发的“数码机床”;突破传统研发“成本、速度、质量”的三元悖论,实现软件产品研发效率10倍级跃迁,完成从“工具辅助”到“智能生成”的代际革新,重构软件研发新范式,重塑软件智造新动能,引领软件智研新时代。
衡泽已服务全国4000+项目,拥有优秀软件企业的7大必备资质。已通过专精特新资质认证、国家级高新技术企业认证、CMMI3国际认证、ISO27001信息安全管理体系认证、ISO9001质量管理体系认证、SDCA软件服务商交付能力四级认证、双软认证,并且衡泽全部产品具有完全自主知识产权,著作权60+,持续为企业AI时代下的数智化升级注入核心动能。
同时,衡泽也已获得3A级企业信用等级证书(中国人民银行认证监管),是重庆市信息技术应用创新产业联盟会员单位。是重庆市专精特新企业。是上数所、深数所、西数所、北数所的数商会员单位。
THE END

