1. 为什么你的 Claude 正在把代码写成"屎山"?
作为一名长期使用AI辅助编程的开发者,我发现Claude虽然能生成高质量的代码片段,但在大型项目中却常常制造出难以维护的"代码屎山"。这背后隐藏着一个关键问题:Claude本质上是个"高度近视"的程序员。
1.1 AI编程的"近视眼"本质
当我们将整个项目交给Claude处理时,它并不会像人类工程师那样先构建完整的架构认知。相反,它采用的是"关键词搜索+局部优化"的工作模式:
- 关键词匹配优先:Claude会搜索与任务描述最相关的代码片段
- 局部最优解倾向:找到匹配内容后立即停止深入探索
- 上下文盲区:无法主动识别已有封装或合理抽象层级
这种工作模式导致一个严重问题:Claude生成的代码可能在当前文件或模块中运行良好,但从项目整体角度看却造成了重复和混乱。
1.2 真实项目中的"重复造轮子"案例
在我的一个电商平台项目中,Claude被要求为商品列表添加分页功能。它给出了看似完美的实现:
javascript复制// ProductList.js
const [page, setPage] = useState(1);
const [pageSize, setPageSize] = useState(10);
const fetchProducts = async () => {
const response = await api.get(`/products?page=${page}&size=${pageSize}`);
setProducts(response.data);
};
问题在于,项目中已经有一个完善的usePagination钩子在src/hooks/目录下。由于Claude没有"看到"这个现有实现,它又创建了一套几乎相同的逻辑。两周后当分页逻辑需要统一调整时,我们不得不修改5个不同文件中的相似代码。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 深度解析Claude的"认知局限"
2.1 技术层面的限制因素
Claude的"近视"问题源于几个技术现实:
- 上下文窗口的物理限制:即使是最新模型,也无法同时处理大型项目的所有文件
- 搜索式认知模式:依赖grep式的关键词匹配而非架
