很多人以为 Claude Code 启动时就把整个项目读了一遍,其实不是。它的行为分三步:
首先是目录扫描——读取文件树,了解项目的整体布局,但这时候它并不读文件内容。你可以把这一步理解为”看了一眼文件夹结构”。
然后是按需读取。当你的需求涉及某个文件时,它才会打开来看。这也是为什么你在 Prompt 里明确指出相关文件路径这么重要。
最后是上下文积累。读过的文件会留在对话的上下文中,后续对话可以直接引用,不需要重复指定。
换句话说,文件读取是惰性的——只在需要时才读。好处是节省上下文窗口的空间;代价是你不主动指出相关文件时,Claude Code 可能会遗漏重要信息。我发现,很多时候结果不理想,不是 Claude Code 能力不行,而是它根本没看到关键的那个文件。
这是我觉得 Claude Code 最实用的技巧之一。与其花时间描述你要什么代码风格、命名规范、错误处理方式,不如直接指向一个现有的模块说”照这个来”:
$ "参考 src/modules/posts/ 的代码结构和风格,
为 comments 创建同样结构的新模块,
包含 routes.ts、service.ts、types.ts"
Claude Code 会自动从参考代码中学习命名规范、错误处理方式、文件组织结构等细节。这比你手动描述要精确得多,也省了大量沟通成本。
我的经验是,项目里只要有一个模块的代码是你满意的,后续所有类似模块都可以用这个方式快速生成。前期在第一个模块上多花点时间打磨好,后面就是复利了。
当你的改动会影响多个文件时,提前告诉 Claude Code 哪些文件需要一起改,能避免很多遗漏:
$ "修改 User 接口,添加 avatar 字段。
请同时更新:
- src/modules/user/service.ts
- src/modules/user/routes.ts
- tests/modules/user/service.test.ts"
不这样做的话,Claude Code 可能只改了类型定义,忘了更新 service 层和测试。它不是故意遗漏,只是没有意识到这些文件之间的关联。
养成审查每次修改的习惯。Claude Code 默认不会自作主张修改文件(除非你给了权限),但即便如此,每次改动都值得过一遍——就像你 review 同事代码一样。这不是不信任工具,而是对自己的代码负责。
每周更新 Claude Code 实战技巧、工具对比、行业动态。回复「模板」获取 CLAUDE.md 模板合集。