一直想像读书那样,大量阅读代码。但不熟悉的语言和陌生的范式成了很大障碍,所以只能读自己熟悉类型的代码。
下面这个工作流让阅读代码变得容易了一点点:
- 打开一个支持 llm agent 的编辑器(cursor、trae 等,见 https://replaceme.org/d/20-zen-yao-yi-jian-an-zhuang-suo-you-zhi-chi-agent-de-bian-ji-qi-mac-ban
- 打开项目的 README 文件
- 打开 agent 功能窗口,选择 claude 3.7(3.5 也行,其他模型可能也可以
- 发送以下内容:
请完成以下任务:
1. 首次运行 - 创建目录:
- 如果README中没有"代码阅读推荐顺序"目录,则:
- 查看整个项目结构
- 在README顶部添加"代码阅读推荐顺序"目录(中文)
- 要精确到文件,而不是目录
- 使用相对路径和markdown链接语法方便跳转
- 每个代码文件后都必须标记星号(*),表示待检查状态
- 原有README内容保留在新增内容下方不变
2. 代码注释增强:
- 从README中找到第一个仍带星号(*)的文件
- 对该文件进行处理:
- 检查是否已有充分注释
- 若已有充分注释:简单说明已有足够注释,不需添加
- 若注释不充分:添加详细中文注释,从小学生也能理解的角度出发
- 更新README目录,移除这个文件的星号
- 每次运行只处理一个文件
3. 注释要求:
- 面向小学生的中文详细注释
- 包括行内注释和多行注释(优先使用多行)
- 解释代码用途、工作原理
- 详细介绍背后知识和思考过程
- 提供具体例子并举一反三
- 可在代码开头/结尾添加完整说明
示例可见:https://github.com/mefengl/note-example-nextjs-email-password-2fa
附录:处理大型项目考虑再增加下面的内容
1. 分层构建阅读指南:
- 获取完整项目结构(使用`tree`命令)
- 从顶层目录逐步深入,但必须精确到具体文件而非仅列出目录
- 先处理主要组件,后补充次要模块,可分多次交互完成
- 即使项目庞大复杂,也必须列出所有关键文件的阅读顺序
2. 结构化组织内容:
- 在顶层提供总体阅读路线,指向具体文件
- 为各功能模块创建详细的文件级阅读序列
- 标注组件间依赖关系,优先关注核心功能文件
- 区分不同类型文件(配置文件、核心逻辑、工具类等)
- 使用缩进或分组表示文件的层次关系,但不用目录替代具体文件