迭代式代码探索 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 路径/到/文件.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个组件
**相关性**:高/中/低,附原因
**差距**:仍不清楚的内容
**下一步**:下一迭代探索什么

**关键文件**:
- 路径/到/文件.ts - 核心实现(★★★)
- 路径/到/其他.ts - 支持工具(★★)

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

集成点

补充:

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

提示

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