在前端和后端开发中,让 Large Language Model(LLM)直接写代码经常会出现“看起来能用,但实际上没法融入项目”的尴尬局面。风格混杂、命名随意、甚至夹杂着过时的语法,这些都是开发者在使用 AI 辅助编程时常遇到的痛点。

其实,解决这个问题的核心并不在于反复向 AI 解释“我要这样写”,而是在项目根目录下放一个 .claude 或者 CLAUDE.md 文件。这是一个专门给 Claude(以及其他支持上下文文件读取的 AI)阅读的项目说明书。只要配置得当,它能让 AI 生成的代码瞬间变得“懂规矩”。

为什么你需要一个规范化的 Prompt 模板?

很多开发者习惯直接把需求丢给 AI,这相当于让一个全栈分析师每次都从头开始理解你的代码库。这不仅浪费 Token,更导致生成的代码充满了不确定性。CLAUDE.md 的作用就是在 AI 编程的“系统层”注入你的开发规范。

Concept diagram showing how CLAUDE.md interacts with AI and project files

CLAUDE.md 作为系统层指令,指导 AI 生成符合规范的代码

一旦配置完毕,AI 就不再是仅仅回答问题的聊天机器人,而是变成了一个熟悉你项目架构、代码风格和特定约束的高级工程师。

打造高效的 CLAUDE.md 模板

一个优秀的 CLAUDE.md 文件通常包含以下几个核心模块。你可以直接参考下面的结构,根据项目需求进行删减。

1. 项目概况与技术栈

首先,你需要明确告诉 AI 你在用什么技术。

# 项目概述
本项目是一个基于 [框架名称] 的高性能 Web 应用。

# 技术栈
- 前端: React 18 + TypeScript + Tailwind CSS
- 后端: Node.js + NestJS + Prisma
- 数据库: PostgreSQL

这一步能避免 AI 给你推荐过时的 API 或者不兼容的库。

2. 代码风格与编码规范

这是重头戏,直接决定代码的可读性。

# 代码风格
- 使用 TypeScript 严格模式,严禁使用 `any` 类型(除非有特殊注释说明)。
- 变量命名使用 camelCase,常量使用 UPPER_SNAKE_CASE,组件使用 PascalCase。
- 函数必须包含 JSDoc 注释,说明输入输出及功能。
- 优先使用 ES6+ 语法,如解构赋值、箭头函数等。
- 每一个文件必须只包含一个主要的 Class 或 Component。

通过这些硬性约束,AI 生成的代码就能直接通过 ESLint 检查,省去大量修改时间。

3. 架构原则与文件生成规则

防止 AI 在项目里乱塞文件。

# 架构原则
- 遵循 MVC 设计模式,Controller 层只负责路由处理,业务逻辑放在 Service 层。
- 数据库操作必须通过 TypeORM/Prisma 封装的 Repository 进行。
- 禁止在前端组件中直接调用 API,必须统一通过 `/api/services` 下的封装函数。

4. 安全与最佳实践

给 AI 上一道安全锁。

# 安全与最佳实践
- 所有用户输入必须经过验证和清洗,防止 SQL 注入和 XSS 攻击。
- 敏感信息(API Key、密码)必须从环境变量读取,严禁硬编码。
- 错误处理不要直接抛出堆栈信息给前端,需自定义 Error Code。

Comparison chart showing messy code vs clean code with CLAUDE.md

配置 CLAUDE.md 前后的代码生成效果对比

进阶技巧:让 AI 更听话

除了静态的文档,你还可以在 CLAUDE.md 里加入一些“交互规则”:

  1. 指定输出格式:告诉 AI,“在修改代码时,请始终使用 Git Diff 格式展示变更,方便我直接合并。”
  2. 单元测试要求:“生成代码的同时,请附带相应的 Jest 单元测试用例,覆盖率需达到 80% 以上。”
  3. 优先级设定:“在性能和可读性冲突时,优先选择可读性,除非该模块位于核心热点路径。”

避坑指南

  • 不要写长篇大论:AI 的上下文窗口虽大,但并非无限。长篇大论的背景介绍反而会让重点迷失。保持 concise(简洁)和 clear(清晰)。
  • 定期更新:技术栈升级了,记得更新 CLAUDE.md。如果还在写“请使用 React Class Component 写法”,AI 就会一直给你过时的代码。
  • 多版本控制:如果是 Monorepo 结构,可以在不同子目录下放置不同的 CLAUDE.md,针对不同子项目微调规范。

实战效果对比

在没有配置 CLAUDE.md 之前,让 AI 写一个用户登录接口,它可能会混用 async/await 和 Promise 回调,甚至忘记密码加密。

配置后,你会惊喜地发现,AI 不仅使用了标准规范的 bcrypt 加密,还自动生成了 DTO(数据传输对象)进行参数校验,并附带了清晰的 JSDoc 注释。这种“开箱即用”的感觉,才是 AI 辅助编程的正确打开方式。

总结

与其在每一次对话中纠正 AI 的坏习惯,不如通过 CLAUDE.md 在源头上解决问题。一份精心打磨的提示词文档,是提升 AI 编程效率的杠杆,投入产出比极高。赶紧在你的项目根目录下创建这个文件,把 AI 调教成你的专属结对编程伙伴吧。

标签: none

评论已关闭