B站技术债务治理实战:存量修复加增量拦截的双轨治理体系
本文整理自QCon北京《何之真 - B站的存量修复和增量拦截》通过AI音视频总结工具Ai好记视频转文字转录整理以下为精炼整理后的会议笔记内容。讲到技术债务治理很多团队的第一反应是搞专项治理短期把告警曲线降下来过一阵子又反弹回去然后再来一次专项。B站工程技术团队的这篇分享提出了一个不同的思路存量修复和增量拦截双轨并进加上AI深度参与构建一套可持续、自动化的技术债务治理体系。整场内容对在中大型互联网公司做工程效能、开发者工具、代码治理的人都很有参考价值。痛点为什么技术债务治理这么难B站除了视频业务还包括直播、社区、生态、游戏、漫画、大会员、商业等语言也很丰富主力是 Java、Go、C移动端还有 Kotlin、Swift、鸿蒙等代码仓库量级大且持续增长。单以用户技助中心为例整体代码量六七千万行平均每人十几万行每季度新增数百万行而主站研发只有五六百人的规模。传统治理有几个绕不开的问题专项治理不治本是临时性、阶段性的动作无法常态化还会打断正常开发节奏人必须做优先级取舍。问题引入是持续过程正常迭代、重构、bugfix 都会引入新问题引入速度往往超过修复速度债务越来越多。人工修复周期长从定位、复现、理解、尝试修复、验证编译、单测、lint甚至部署测试环境到 app owner review 和合入每一步都靠人每步都可能因优先级卡住。核心矛盾在于修复是单点、离散的行为而问题引入是持续不断的。所以作者认为要做好治理需要四个能力稳定的修复产能不依赖人工排期可信的验证链路风险分层机制有人负责兜底确认问题并处理AI 在治理中的价值极大提高修复产能人工一个一个修AI 可以批量自动化还包含验证步骤。拓展增量拦截在 MR 阶段的增量拦截里发现更多问题避免它们变成历史债务。知识沉淀修复获得的经验转成 prompt 或 skill 及对应评测级用于持续优化。降低修复门槛原来人要理解规则再改代码现在 AI 能根据自然语言描述直接修人只需看修复对不对。双轨治理总体架构与核心原则存量修复解决如何清空历史债务增量拦截解决如何避免新问题合入主干成为新债务。两条轨道互相依赖存量修复的产出也是一个 MR必须通过增量拦截再验证增量拦截发现的新问题又能作为存量修复的输入扩大范围存量端 AI 负责执行修复验证交其他工具和角色增量端 AI 扩展发现问题的范围并持续提高准确率四条核心原则双轨并进存量修复和增量拦截必须同时进行风险分层减少人工介入但保持可控职责明确规则负责发现和验证AI 负责修复owner 兜底决策回流优化成功失败结果都回流优化规则、prompt 和策略存量修复约束下的批量自动化修复背景团队 2024 年做了全公司工程能力建设为几乎所有应用都增加了增量拦截环节配置了包含编译、单测、lint静态代码扫描的流水线要求不能有新增 bug有的团队还要求不能新增异位或漏洞甚至配置接口测试流水线发现接口不兼容影响。流程存量修复流程从 sonar 扫描开始每个 MR 合并后流水线自动扫描相关应用拿到最新问题数。达到修复阈值后触发自动修复流水线AI 在约束下工作只在自定义 linter 工具和 prompt 指定的问题类型内修复不在全量问题上自由发挥只在指定文件范围内修改修复结果必须通过同一 linter 工具验证生成的 MR 必须通过增量拦截流水线再次检验最后由 app owner review 决策合入为什么是半自动化早期试点时对所有有问题的应用每天全量跑修复但研发正处于紧急新功能迭代没时间 review加上主干频繁合入导致 MR 一直冲突、最后不得不用 MR。后来改成先收集扫描得到的问题数据做报表按应用等级、部门、问题严重程度同步给应用负责人再根据应用重要程度和问题严重程度商定修复阈值达到阈值才批量触发修复流水线owner 也更有动力去 review 合入。效果数据用户技助中心代码异位从第一季度最高 1 万 4 千多降到接近平缓的 1 千 1 百多叠加上其他业务整体一个季度下降约 90%bug 数因为工程能力建设加增量拦截长期维持在个位数增量拦截在主干之外拦下新问题AI 是对原有 CI 流程的补充增强。MR 的增量拦截流水线必跑编译、单测、lint部分开启 AI 能力的仓库还会跑 AI 相关的流水线比如 AI CodeReview、单元测试补充、接口测试补充。所有流水线跑完后汇总结果参考配置判断哪些弱软性失败不阻塞合入综合得到 MR 是否 ready 合入的状态。研发能看到问题描述和修复建议对 AI 部分的问题可据建议修复其他常规编译问题自行处理或暂缓。最终 owner 再做一次 review 决定合入。AI CodeReview对传统 lint 的补充而非替代传统 lint 的局限要把经验固化成规则由工具执行确定性极强只能发现能形式化表达的问题基于单行或局部模式匹配AI CodeReview 的优势可以用自然语言描述审查意图能理解代码上下文、函数模块调用链甚至变更意图从而发现难以规则化的逻辑和规范问题具备需求视角能对照需求、接口约束、预期行为判断实现有没有偏差可构建数据闭环审查结果人工反馈、误报分析、问题归因回流去迭代提示词、更新规则提升识别能力和准确度分层处理很关键对代码本身的审查是高置信度结论作为阻塞合入的门槛有问题必须修复对需求实现的理解和评估是低置信度结论只作为提示不阻塞供研发参考目前 AI CodeReview 只对一部分仓库开启开启范围内准确率在 85% 以上。AI 补充单元测试围绕 MR 变更函数流程从 MR diff 获取变更函数用代码图谱加静态分析梳理这些函数的下游依赖先去远端存储找现成单测执行并看覆盖率超过阈值就结束否则生成新测试生成时在 prompt 里提供整条函数链路信息AI 生成的测试文件可能编译不过会有修复编译循环把编译报错、堆栈喂给 AI 修之后做两轮分析第一轮用变更函数及下游依赖信息对失败 case 归因把非代码问题环境、框架的失败去掉但不简单丢弃而是人工收集处理第二轮给 AI 完整代码库梳理上下游依赖去除无效 case比如针对防御性编程的失败用例最终保留 AI 认为有效并经部分人工确认的用例保存云端复用当前状态上线不到一个月增量覆盖率约 85%正确率还没到门槛AI 标注有效 28 条、人工标注完成 22 条里 12 条有效、准确率 54.5%暂时不把它作为合入门槛等正确率提到 80% 到 90% 再考虑AI 补充接口测试覆盖率驱动的迭代闭环整体设计整体是两层循环。外层循环生成测试用例内层循环修复测试用例执行中的问题。设计原则尽可能覆盖未覆盖的链路一轮只生成一个测试用例避免批量生成互相干扰内层也一次只修一条问题批量修容易出现级联问题、排查困难执行过程基于 mock 回放工具发现下依赖缺失或 mock 内容不对就修对时间戳、随机值这类高波动内容通过策略忽略最后一轮数据链路复盘比较接口实际响应和预期是否一致不一致时让 AI 根据应用日志做完整归因复盘输出交人工确认当前状态目前是内部试点效果波动较大好的应用两三轮就能到 60% 覆盖率。总结与展望核心观点技术债务治理本质是持续运行的系统不能靠一两次专项完成存量修复和增量拦截必须同时做验证要优先AI 或人工修复都先通过验证再人工 review 合入当前局限存量修复主要覆盖少部分低风险类型的规则补充单测和接口测试都还处于小规模试点未来方向MR 合入最终还是由 owner 决定后续可以尝试更精细的分层机制让某类问题自动修复持续优化成本总体落地思路是先证明局部成立再平台化扩张以上内容由 Ai好记 转录整理。Ai好记是一款支持音视频转图文笔记的AI知识库工具支持B站、小红书、抖音、小宇宙等平台链接及本地音视频文件视频转文字后自动生成精华速览、思维导图和结构化图文笔记帮助你把几小时的视频内容变成可搜索、可复习的图文笔记。

相关新闻

企业级 Text-to-SQL 实战:从AI取数工具到智能分析Agent的演进之路

企业级 Text-to-SQL 实战:从AI取数工具到智能分析Agent的演进之路

本文整理自QCon北京《王新波 - AI取数到智能分析演进之路》,通过AI音视频转录总结工具 Ai好记 视频转文字转录整理,以下为精炼整理后的会议笔记内容。做 AI 取数(Text-to-SQL)的同学应该都体会过那种落差。学术界的 benchmark 上&…

2026/8/7 18:46:59 阅读更多 →
LLaVA-OneVision-2与Qwen3融合教程:构建超大规模多模态模型

LLaVA-OneVision-2与Qwen3融合教程:构建超大规模多模态模型

LLaVA-OneVision-2与Qwen3融合教程:构建超大规模多模态模型 【免费下载链接】LLaVA-OneVision-2 Fully Open Framework for Democratized Multimodal Training 项目地址: https://gitcode.com/gh_mirrors/ll/LLaVA-OneVision-2 LLaVA-OneVision-2是一个完全开…

2026/8/7 18:45:59 阅读更多 →
如何使用Copycopter Server轻松管理多语言内容?新手入门教程

如何使用Copycopter Server轻松管理多语言内容?新手入门教程

如何使用Copycopter Server轻松管理多语言内容?新手入门教程 【免费下载链接】copycopter-server Copycopter Server is open source. Run it as a web service. 项目地址: https://gitcode.com/gh_mirrors/co/copycopter-server Copycopter Server是一款开源…

2026/8/7 18:45:59 阅读更多 →

最新新闻

azure-cheat-sheet项目揭秘:免费获取微软云服务速查表的3种高效方式

azure-cheat-sheet项目揭秘:免费获取微软云服务速查表的3种高效方式

azure-cheat-sheet项目揭秘:免费获取微软云服务速查表的3种高效方式 【免费下载链接】azure-cheat-sheet Every product, feature and service in the Azure family. 项目地址: https://gitcode.com/gh_mirrors/az/azure-cheat-sheet azure-cheat-sheet项目是…

2026/8/7 19:34:16 阅读更多 →
为什么bulma-extensions是Bulma.io用户的必备工具?10个理由告诉你

为什么bulma-extensions是Bulma.io用户的必备工具?10个理由告诉你

为什么bulma-extensions是Bulma.io用户的必备工具?10个理由告诉你 【免费下载链接】bulma-extensions This repository provides a simple access to all of my extensions for Bulma.io 项目地址: https://gitcode.com/gh_mirrors/bu/bulma-extensions bulm…

2026/8/7 19:34:16 阅读更多 →
用 Ace Data Cloud 接入 Codex:让 AI 编程工具配置更简单

用 Ace Data Cloud 接入 Codex:让 AI 编程工具配置更简单

在 AI 编程工具快速普及的今天,很多开发者已经开始在终端、IDE、CI/CD 流程里使用 Codex、Claude Code 等编程 Agent。问题也随之出现:不同工具、不同模型、不同供应商的配置方式不统一,Token 管理分散,切换模型麻烦,成…

2026/8/7 19:34:16 阅读更多 →
用 CC Switch 一键接入 Ace Data Cloud,让 Codex 开发代理更省心

用 CC Switch 一键接入 Ace Data Cloud,让 Codex 开发代理更省心

用 CC Switch 一键接入 Ace Data Cloud:让 Codex 开发代理更省心 如果你已经在用 AI 编程助手,大概率会遇到一个很现实的问题:不同工具、不同模型、不同 API 供应商之间的配置方式并不统一。尤其是像 Codex 这类终端/IDE 编程代理&#xff0c…

2026/8/7 19:34:16 阅读更多 →
用 Ace Data Cloud 一站式接入 OpenAI Chat Completions API:更快把 AI 能力集成到你的应用里

用 Ace Data Cloud 一站式接入 OpenAI Chat Completions API:更快把 AI 能力集成到你的应用里

用 Ace Data Cloud 一站式接入 OpenAI Chat Completions API:更快把 AI 能力集成到你的应用里 在 AI 应用开发里,Chat Completions 几乎已经成为最常见、最基础的能力之一:智能客服、知识库问答、代码助手、内容生成、数据分析、运营自动化……

2026/8/7 19:34:16 阅读更多 →
为什么LyricsX是macOS最佳歌词应用?5大核心功能深度解析

为什么LyricsX是macOS最佳歌词应用?5大核心功能深度解析

为什么LyricsX是macOS最佳歌词应用?5大核心功能深度解析 【免费下载链接】LyricsX 🎶 Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/lyr/LyricsX LyricsX是一款专为macOS打造的终极歌词应用,它能自动同步…

2026/8/7 19:33:16 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/7 17:02:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/7 17:02:36 阅读更多 →