用途:在调查缺陷、诊断问题或理解意外行为时,提供系统化定位根因的方法,而非随机改代码。
核心原则:先理解再修复,正确的诊断才能带来正确的修复。整体流程采用科学方法:观察现象并收集事实与证据(报错信息、堆栈、日志、复现步骤、环境信息、网络请求、数据库查询日志);提出假设并按常见类别(逻辑错误、状态管理、异步时序、数据、集成、环境、资源)排序;设计实验验证假设并记录结论;分析结果并重复或收尾。
主要策略:添加日志(记录函数进出、分支、外部调用、异常值并附上下文);使用调试器(浏览器 debugger 断点、Node 使用 node --inspect app.js 后打开 chrome://inspect);二分查找缩小代码范围;小黄鸭讲述法;对比可用与不可用版本(可用 git bisect 定位引入问题的提交,命令如 git bisect start / git bisect bad HEAD / git bisect good v1.0.0);简化到最小复现;检查假设。
按症状排查:间歇性失败、本地正常生产失败、性能缓慢、内存泄漏、崩溃异常,分别给出调查方向。文末归纳常见缺陷模式(null/undefined、越界、异步时序、状态突变、作用域)、调试工具(浏览器控制台、调试器、网络、性能面板;grep、tail -f、ps aux 等命令行;数据库 EXPLAIN ANALYZE 等)、检查清单与反模式(随机改代码、未验证即假设、只治标、在生产环境调试、无复现步骤)。
限制:仅提供通用方法论与示例,未提及收费、价格或特定平台支持,具体命令与代码需按实际项目调整。