修复模式画廊
从 41 个真实 Bug 案例中提炼的 10 种可复用修复模式。 每种模式包含场景描述、修复前/后代码对比和技术要点。
10
总模式
10
活跃模式
93%
平均置信度
41
关联 Bug
前端
UI 交互、状态管理、渲染优化等前端修复模式
前端活跃
A
隐藏 → 禁用
用户因条件不满足时,将元素从 v-if 移除改为 :disabled + Tooltip 提示
修复前
v-if="condition"修复后
v-if="canAlways" + :disabled="!condition" + <el-tooltip>1 个关联 Bug
查看详情
前端活跃
B
入口解耦
一个按钮触发多个互相冲突的操作时,拆分为独立入口
修复前
一个按钮同时触发AI对话框和企微客服修复后
AI对话框和企微客服独立入口1 个关联 Bug
查看详情
前端活跃
C
数据源补全
沙箱/预览环境模板引用未注入的数据源时,补全mockData
修复前
setup() 未返回 template 引用的变量修复后
注入完整 mockData { days, trend, summary }1 个关联 Bug
查看详情
前端活跃
D
观察者生命周期控制
ResizeObserver 与手动 DOM 操作互相覆盖时,控制观察者生命周期
修复前
ResizeObserver contentRect.height 覆盖手动拖拽修复后
拖拽前 detachObserver() → 松手后 reattachObserver()1 个关联 Bug
查看详情
后端
服务端配置、API 设计、中间件等后端修复模式
后端活跃
E
显式构造 + @Lazy
Spring Bean 构造期循环依赖时,使用显式构造函数 + @Lazy 打破循环
修复前
@RequiredArgsConstructor + @Lazy 字段注入修复后
显式构造函数 + @Lazy 参数4 个关联 Bug
查看详情
后端活跃
F
DateTimeFormatter 替代 substring
对日期字符串做固定长度截取导致越界时,使用 DateTimeFormatter
修复前
broadcastAt.toString().substring(0,19)修复后
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(broadcastAt)1 个关联 Bug
查看详情
数据库
数据库连接、查询优化、迁移等数据层修复模式
数据库活跃
G
JDBC 强制 UTF-8
MySQL 连接未指定字符集导致中文乱码时,强制 UTF-8
修复前
MySQL 连接未指定字符集 → latin1 回退修复后
JDBC URL 添加 characterEncoding=UTF-8 + connectionCollation=utf8mb4_unicode_ci1 个关联 Bug
查看详情
数据库活跃
H
类型对齐
数据库列类型与 ORM 映射不兼容时,进行类型对齐
修复前
BIT / ENUM 与 JPA 映射不兼容修复后
BIT→TINYINT / ENUM→VARCHAR / ddl-auto: none3 个关联 Bug
查看详情
数据库活跃
I
Flyway out-of-order
分支合入导致版本号顺序混乱时,启用 out-of-order
修复前
Flyway 默认按版本号顺序执行修复后
flyway.out-of-order: true2 个关联 Bug
查看详情
数据库活跃
J
僵死锁巡检 + 清理
MySQL InnoDB 出现长时间未提交的僵死事务时,巡检并清理
修复前
僵死锁导致全站变慢修复后
cron 每小时巡检 → KILL 僵死线程 → 必要时 restart mysql2 个关联 Bug
查看详情