
6周5.8万行代码一个能跑通全流程的仿真任务管理平台。第7周客户提了个小需求调度队列加一个超时重试。改完当天结构求解器连续三次把两个工况的任务串在了一起现场评审会直接翻车。更尴尬的是没人说得清为什么。写代码的、审代码的、接手的三个工程师面面相觑。这不是段子。这是我们过去一年在多个研发类软件项目里反复看到的一幕。01 你欠的不是技术债是认知债Vibe Coding这个词Andrej Karpathy在2025年2月提出来的原话是完全交给感觉忘记代码的存在。前半句是效率后半句是陷阱。因为忘记代码存在的前提是你这辈子不用再见它。而研发类软件的生命周期通常是五到十年。这里要分清两种债。技术债代码写得糙将来要还但你知道欠在哪、欠多少账单是清楚的。认知债代码能跑但你不知道它在干什么。连还哪儿都无从下手Simon Willison把后者叫cognitive debt。我们自己的体感更直白技术债是本金加利息认知债是本金加利息外加你连账单都看不懂。五个信号工程师可以对号入座。第一类型和错误处理形同虚设。any满天飞裸except吞异常日志里只有一行NoneType现场排查全靠猜。第二God File。单个文件一两千行AI只会往里追加不会主动拆。第三复制式复用。四个几乎一样的后处理模块改一处要改四处漏一个就是bug。第四零测试或者假测试。测试跑通了测的全是正常路径边界一条没有。第五依赖成环。画出来是一碗意面动了A必崩B。中三条以上恭喜是屎山。02 为什么研发类项目踩下去更通用互联网团队踩的坑在工业软件和研发系统里会被成倍放大原因有五个。第一错一次的代价不是页面白屏是算错的工况。仿真求解器里的单位量纲、边界条件、收敛判据错一位小数点下游结构设计跟着错一整轮。第二边界条件是主战场不是边角料。AI的默认思维是正常场景跑通而工程软件的输入永远是脏的空值、超大网格、非收敛返回、中文路径、跨平台编码差异。第三交付周期长人员流动大。一个平台交付后维护五年写代码的人和接手的人往往不是同一个。认知债在没有交接的项目里是复利第四国产化适配叠加不确定性。从x86迁到国产CPU从Windows 迁到麒麟、统信AI生成代码里那些看起来能跑的动态库调用和硬编码路径会在迁移时集中爆炸。第五合规与可追溯。B端客户要评审、要审计、要交付文档。一句这是AI写的我也不太清楚在评审会上没有说服力。一句话总结互联网产品可以先跑再补工程软件必须算得对、说得清、改得动。03 一个项目的三周复盘项目概况某装备制造企业的仿真数据管理与任务调度平台5.8万行Python 加 TypeScript前后端分离对接两套商业求解器和一套自研求解器。团队4人其中3人用AI编程工具辅助开发。6周完成主体功能第7周进入不敢改的状态。蜜月期第一到第三周一天推进三四个功能任务提交、结果解析、参数面板、图表后处理全部跑得通。commit记录漂亮演示效果好甲方满意。失控期第四到第七周加一个超时重试调度队列开始串工况根因是任务上下文用了模块级全局变量AI在三次不同的对话里各写了一份状态管理彼此打架。结果解析在网格超过800万单元时静默失败裸except吞掉了内存溢出日志里只有一行解析完成。后处理绘图有四份几乎相同的实现改一处颜色要改四处。单元测试覆盖率6%且集中在工具函数核心调度和解析路径一条没有。依赖扫描发现三处循环依赖、两处硬编码的许可证路径。最要命的不是这些bug是团队里没有一个人能完整讲清楚一个任务从提交到返回结果的数据流。这就是认知债的兑现时刻。治理期第八到第十周三周救回来。四步顺序不能反第一步体检不急着动刀用静态扫描加安全扫描加覆盖率统计输出一份分级报告红色是循环依赖、未处理异常、硬编码凭据黄色是God File、重复实现、any与裸 except绿色是命名和注释。只修红黄绿的先不动。原则是先有地图再动手术。第二步补网先测试后重构不给全项目补测试那是另一个月的活。只给接下来要动刀的模块补调度器、求解器适配层、结果解析。每个函数至少一条正常路径加一条边界路径边界包括空值、超大网格、非收敛返回、跨平台路径。测试先红后绿重构才有安全网。第三步拆与收敛按业务域拆God File调度、求解器适配、结果解析、权限、日志各自独立。消灭any和裸except用类型守卫加显式异常链替代。四份后处理收敛成一份列定义改成配置化。第四步立规矩把流程固定下来仓库根目录写架构约定文件写死模块边界、单文件行数上限、禁用模式清单AI每次都能读到就不会再把东西塞进一个文件。提PR必须能回答三个问题这段逻辑我理解吗为什么是这个方案有没有更简单的做法答不上就不合。commit message写为什么不写做了什么。CI上四道门禁静态检查、类型检查、单元与契约测试、覆盖率阈值不绿不合并。每个迭代留百分之二十的工时还债债务进backlog不进心里三周后的结果核心路径测试覆盖率6% → 62%循环依赖3处 → 0最长单文件2100行 → 380行新增需求平均交付时长5天 → 1.5天更重要的是团队终于能回答那个问题了这个任务是怎么跑完的。04 三条硬纪律比工具重要第一AI写代码人来定架构。接口、模块边界、数据流是人决定的AI只填实现。让AI设计系统等于把最难的部分外包给一个不负责的同事。第二AI代码的审查强度要高于人工代码。人写的代码你能问作者AI 写的代码没有作者。按匿名外包且联系不上的标准去审。第三认知速度必须跟上代码速度。每写完一个模块用一句话说清数据流。说不清就是债在积累。工具不该背这个锅。AI是电锯能砍十倍的树也能锯到腿。