Claude在编程方面确实非常出色,跟普通大模型相比简直是降维打击。但有一个问题值得所有使用者注意:它是“近视眼”。
因为它从来看不到完整的代码全貌,只能通过grep搜索找到相关代码片段。一旦grep返回了跟bug描述相似的代码片段,它往往就不再深入探索了,直接在不相关的地方“修复”问题,或者基于这些碎片化的信息来回答问题。
随着代码库不断膨胀,这个问题会越来越严重。如果使用者自己不了解代码结构,Claude就会不断重复造轮子,在应用的不同位置为相同功能创建重复实现。
有个真实案例很能说明问题:有人让Claude给一个按钮添加键盘快捷键,结果它复制了整个处理逻辑而不是调用已有的按钮处理函数。后来修改功能时,按钮和快捷键的行为就出现了不一致。
社区里已经有不少人在探索解决方案:
第一种是让Claude先绘制代码架构地图,包括主要子系统、职责划分、共享服务、容易重复的区域等,然后要求它每次操作前都参考这张地图并持续更新。
第二种是用CLAUDE.md文件预先定义项目结构、关键模式、哪些东西不能重复实现。
第三种是建立完整的文档体系,用Mermaid图表展示整个应用的连接关系,在每个主要模块下都放置readme文件,再配合文档更新工具来维护。
还有开发者分享了自己的做法:定期安排“停下来清理”的时间,专门检查文档、更新文档、合并重复代码。
有人提出了一个更根本的观察:这不仅仅是上下文窗口的问题,模型本身就被训练成“找到相关内容就停止搜索”的行为模式。
这个讨论揭示了一个重要认知:AI写代码很强,但绝不意味着人可以完全放手。架构思维和全局视野仍然需要人来把控。代码库越大,使用者对整体结构的理解就越关键。
说到底,当前最有效的方法还是建立一套外部记忆系统,让模型在每个重要步骤都能参考和更新,弥补它在长期记忆上的不足。
x.com/burkov/status/2015557872214810693