如何快速定位bug
# 如何快速定位bug
# 问题描述
随着项目越大,代码演变得越复杂,bug也越来越难定位。那么从源头出发,如何快速定位bug呢?
# 定位方法
# 输出日志
根据代码逻辑,输出日志,然后根据日志定位问题。
在日志过滤时,为了避免过多日志干扰,可以使用/a|b/的方式进行筛选。 也可以在输出日志时,对同一逻辑链路的日志进行模块化,比如
console.log('module1_a: ', a);
console.log('module1_b: ', b);
1
2
2
在Vue项目中直接改变响应式变量,难以定位问题出现。此时可以通过watch监听变量,然后根据日志定位问题。
watch(
() => store.state.json,
(newValue) => {
console.trace('newValue:', newValue);
},
{
onTrack(e) {
console.log('tracked:', e);
},
onTrigger(e) {
console.log('triggered:', e);
}
}
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 断点调试
在代码中打断点,然后根据断点调试,找到问题所在。
# 模块删除法
有时候问题难以复现,或者问题复现的步骤太多,这时候可以考虑使用模块删除法。
将模块逐渐删除,然后根据日志定位问题。
# 高级方法
# 单元测试
在sdk开发中,单元测试是必不可少的。常用的单元测试框架有jest
、mocha
、ava
等。
# 代码评审
在代码提交前,进行代码审查,可以发现一些潜在的问题。
# 代码重构
以新视角审视旧代码,重构代码,提高代码质量。这样可以清除代码中的坏味道,提高代码的可读性和可维护性,同时减少bug的出现。
上次更新: 2025/04/09, 17:50:35