迭代式代码探索 iterative-code-exploration

迭代式代码探索是一种系统化技能,通过渐进式上下文检索和四阶段迭代循环(发现、评估、细化、循环),帮助开发者高效理解和探索不熟悉的代码库。它专注于构建代码结构、模式和交互的心智模型,适用于功能实现、错误修复和重构等场景。关键词包括代码探索、迭代方法、软件开发、渐进式上下文、心智模型构建、代码理解。

架构设计 0 次安装 0 次浏览 更新于 3/7/2026

name: 迭代式代码探索 description: 通过迭代细化渐进式上下文检索模式来理解不熟悉代码库 license: MIT metadata: source: affaan-m/everything-claude-code adapted-by: ai-skills category: 代码探索

迭代式代码探索

一种通过迭代上下文细化来渐进式探索和理解不熟悉代码库的系统化模式。

问题

当处理新代码库时,您通常不知道:

  • 哪些文件包含相关代码
  • 存在哪些模式和约定
  • 项目使用什么术语
  • 组件如何交互

标准方法失败:

  • 阅读一切:耗时且令人不知所措
  • 猜测位置:经常遗漏关键上下文
  • 问宽泛问题:返回太多无关信息

解决方案:4阶段迭代循环

┌─────────────────────────────────────────────┐
│                                             │
│   ┌──────────┐      ┌──────────┐            │
│   │ 发现     │─────▶│ 评估     │            │
│   └──────────┘      └──────────┘            │
│        ▲                  │                 │
│        │                  ▼                 │
│   ┌──────────┐      ┌──────────┐            │
│   │ 循环     │◀─────│ 细化     │            │
│   └──────────┘      └──────────┘            │
│                                             │
│        最多3-4个循环,然后综合               │
└─────────────────────────────────────────────┘

阶段1:发现

从广泛探索开始:

# 找到入口点
find . -name "main.*" -o -name "index.*" -o -name "app.*" | head -20

# 发现项目结构
tree -L 3 -I 'node_modules|dist|build'

# 找到配置文件
find . -name "*.config.*" -o -name "package.json" -o -name "*.toml"

# 识别关键模式
grep -r "export class" --include="*.ts" src/ | head -20
grep -r "def " --include="*.py" . | head -20

记录初始发现:

  • 项目类型(Web应用、库、服务等)
  • 技术栈(语言、框架)
  • 架构提示(单体仓库、微服务等)

阶段2:评估

评估发现文件的相关性:

# 阅读高价值文件
cat README.md
cat ARCHITECTURE.md 2>/dev/null
cat docs/overview.md 2>/dev/null

# 检查包清单
cat package.json | jq '.dependencies, .scripts'
cat Cargo.toml 2>/dev/null
cat requirements.txt 2>/dev/null

评分标准:

  • 关键(★★★):入口点、核心逻辑、主配置
  • 重要(★★):工具、共享组件、类型
  • 支持(★):测试、文档、示例
  • 噪音(-):生成文件、外部代码

阶段3:细化

关注识别出的相关领域:

# 深入特定模块
ls -la src/core/
cat src/core/index.ts

# 追踪依赖关系
grep -r "import.*from.*core" --include="*.ts" src/ | head -20

# 查找相关模式
grep -A 5 -B 5 "class UserService" src/**/*.ts

# 检查测试以获取使用示例
find . -name "*.test.*" -o -name "*.spec.*" | head -10

构建心智模型:

  • 组件如何连接
  • 使用了哪些一致模式
  • 类似功能位于何处

阶段4:循环

决策点 - 您是否需要更多上下文?

继续如果:

  • 关键功能仍不清楚
  • 依赖关系未完全追踪
  • 模式不一致或令人困惑

停止如果:

  • 核心逻辑已理解
  • 能解释主要流程
  • 准备好自信地做出更改

实践工作流

用于功能实现

  1. 发现:找到类似现有功能

    grep -r "功能名称" src/
    find . -name "*功能*"
    
  2. 评估:审查实现模式

    cat src/features/类似功能/index.ts
    
  3. 细化:检查测试和边界情况

    cat src/features/类似功能/*.test.ts
    
  4. 循环:追踪依赖关系直到清晰

用于错误修复

  1. 发现:定位错误来源

    grep -r "错误信息" src/
    git log -S "错误信息"
    
  2. 评估:理解周围上下文

    cat path/to/file.ts | grep -A 20 -B 20 "错误位置"
    
  3. 细化:检查调用站点和调用者

    grep -r "函数名称" --include="*.ts" src/
    
  4. 循环:根据需要扩展上下文

用于重构

  1. 发现:映射当前结构

    find src/ -name "*.ts" | xargs wc -l | sort -n
    grep -r "class\|interface" --include="*.ts" src/ | wc -l
    
  2. 评估:识别耦合点

    grep -r "import.*from.*模块" src/ | cut -d: -f2 | sort | uniq -c | sort -rn
    
  3. 细化:查找所有使用情况

    grep -r "组件名称" --include="*.ts" src/
    
  4. 循环:确保找到所有引用

输出模板

每次循环迭代后,记录:

## 迭代 N

**查询**:我正在寻找什么
**找到**:X个文件,Y个模式,Z个组件
**相关性**:高/中/低及原因
**差距**:仍然不清楚什么
**下一步**:下次迭代中探索什么

**关键文件**:
- path/to/file.ts - 核心实现(★★★)
- path/to/other.ts - 支持工具(★★)

**心智模型更新**:
- 对X的新理解
- Y和Z之间的连接
- 模式:描述

集成点

补充:

  • 知识架构:用于记录发现
  • 第二大脑图书管理员:用于保存探索笔记
  • 项目协调:用于规划探索策略
  • 测试模式:用于通过测试学习

提示

  • 从宽泛开始,然后缩小焦点
  • 记录假设以验证
  • 使用测试作为文档
  • 遵循导入/导出
  • 检查git历史获取上下文
  • 寻找解释“为什么”的注释