systematic-debugging

Solid

用于遇到缺陷、测试失败或异常行为,且必须在提出修复方案前调查根因的场景。未经根因分析不得只修复表象。

Code & Development 48 stars 7 forks Updated today MIT

Install

View on GitHub

Quality Score: 85/100

Stars 20%
56
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Systematic Debugging - 系统化调试 ## 铁律 ``` NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST ``` **违反规则的信件就是违反规则的精神。** **无例外**: - 不跳过根因调查直接修复 - 不基于猜测进行修复 - 不尝试多个更改同时测试 - 不在不完全理解的情况下修复 --- ## 常见合理化 | 借口 | 现实 | |------|------| | "快速修复现在,稍后调查" | 永不会有"稍后"。技术债积累 | | "尝试改变 X,看是否有效" | 猜测不是调试。可能碰巧修复但未理解 | | "添加多个更改,运行测试" | 无法确定哪个更改有效。浪费调试时间 | | "可能大概差不多是 X" | 模糊理解导致错误修复 | | "不完全理解但可能有效" | 理解不完全=修复不完整 | --- ## 红色标志 - 停止并重新开始 - "快速修复现在,稍后调查" - "尝试改变 X,看是否有效" - "添加多个更改,运行测试" - "可能大概差不多是 X,让我修复" - "不完全理解但可能有效" - 基于猜测而非证据的修复 **所有这些意味着:停止修复。回到根因调查阶段。** --- ## 四阶段框架 ### 阶段 1:根因调查 **任何修复前**: 1. **仔细阅读错误消息** - 不要跳过错误或警告 - 它们通常包含确切解决方案 2. **一致复现** - 你能可靠触发吗? 3. **检查最近变更** - 什么变更可能导致此问题? 4. **多组件系统收集证据** ```bash # 对于每个组件边界: - 记录进入组件的数据 - 记录退出组件的数据 - 验证环境/配置传播 - 检查每层状态 运行一次以收集显示何处中断的证据 然后分析证据以识别失败组件 然后调查该特定组件 ``` 5. **追踪数据流** - 向后追踪到坏值起源 ### 阶段 2:模式分析 1. **找到工作示例** 2. **与参考对比** 3. **识别差异** 4. **理解依赖** ### 阶段 3:假设与测试 1. **形成单一假设**:"我认为 X 是根本原因,因为 Y" 2. **最小化测试**:进行最小可能更改 3. **验证后再继续** 4. **3+ 次修复失败时:质疑架构** ### 阶段 4:实现 1. **创建失败测试用例** 2. **实施单一修复**:只改验证该假设所需的最小范围 3. **验证修复**:一次只验证一个假设,不把多个修复混在同一次验证里 4. **收敛范围**:避免顺手重构、无关格式化或新增未证明必要的抽象 5. **如果 3+ 次修复失败:质疑架构** --- ## 核心理念 **系统化调试** 不是碰运气,而是方法化地解决问题的科学流程。 ``` ┌─────────────────────────────────────────────────────────┐ │ 收集证据 → 形成假设 → 系统验证 → 定位根因 → 实施修复 │ └─────────────────────────────────────────────────────────┘ ``` **核心原则**: - **基于证据,而非猜测** - **治疗根本原因,而非症状** - **一次验证一个假设** - ...

Details

Author
huangwb8
Repository
huangwb8/skills
Created
8 months ago
Last Updated
today
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category