新人入职第一天,代码写得像干了三年的老员工:我只做了一件事

新人入职第三天,第 5 个 MR 被打回。

评论里写的全是:

  • "我们这里不用 moment,用 dayjs"
  • "service 文件放 src/services 下面,不是 src/api"
  • "组件命名用 PascalCase"
  • "这个公共方法已经有了,在 src/lib/utils 里"

我突然意识到:这些"规矩"只存在于老人的脑子里。 没有文档,全靠口口相传,新人只能靠"被打回"来学习。

我做了什么

把所有"潜规则"写成 AI 配置文件,提交到 git。

新人 clone 项目后,AI 自动加载这些规则。他写的代码从第一行开始就符合团队规范------不是因为他"学会了",而是 AI 帮他遵守了。

配置文件结构

graph TD A[.kiro/steering/] --> B[tech.md<br/>&#34;用什么&#34;] A --> C[structure.md<br/>&#34;放哪里&#34;] A --> D[coding.md<br/>&#34;怎么写&#34;] A --> E[patterns.md<br/>&#34;照着谁写&#34;] B --> F[技术栈规范] C --> G[文件结构规范] D --> H[编码风格规范] E --> I[范例参考] F --> J[AI自动遵守] G --> J H --> J I --> J J --> K[新人代码<br/>天然正确] style A fill:#e1f5fe style B fill:#f3e5f5 style C fill:#e8f5e8 style D fill:#fff3e0 style E fill:#fce4ec
bash 复制代码
.kiro/steering/          (或 .cursorrules 单文件)
├── tech.md          ← "用什么"
├── structure.md     ← "放哪里"
├── coding.md        ← "怎么写"
└── patterns.md      ← "照着谁写"

tech.md --- 回答"用什么"

markdown 复制代码
- React 17 + TypeScript 4
- UI: Ant Design 5 + ProComponents
- 状态管理: Rematch 2
- 日期: dayjs(禁止 moment)
- 样式: Less + CSS Modules(.m.less)

structure.md --- 回答"放哪里"

markdown 复制代码
| 类型 | 路径 | 示例 |
|------|------|------|
| 页面组件 | src/view/<domain>/ | src/view/marketing/CouponList/ |
| 接口函数 | src/services/<domain>/ | src/services/marketing/coupon.ts |
| 状态模型 | src/models/<domain>/ | src/models/marketing/coupon.ts |
| 公共组件 | src/components/ | src/components/SearchForm/ |
| 工具函数 | src/lib/ | src/lib/format.ts |
| 常量枚举 | src/constant/ | src/constant/marketing.ts |
| 自定义Hook | src/hooks/ | src/hooks/useModal.ts |

coding.md --- 回答"怎么写"

markdown 复制代码
## 命名
- 变量/函数: camelCase
- 组件: PascalCase
- 常量: UPPER_SNAKE_CASE
- 事件处理: handle + 事件名 (handleClick)
- 状态变量: is/has + 形容词 (isLoading)

## 函数风格
- ✅ const handleSubmit = () => {}
- ❌ function handleSubmit() {}

## 组件规范
- 单文件不超过 250 行
- Props 必须定义 interface

patterns.md --- 回答"照着谁写"

markdown 复制代码
| 页面类型 | 范例文件 |
|----------|---------|
| 列表页 | src/view/marketing/CouponList/index.tsx |
| 表单页 | src/view/marketing/CouponCreate/index.tsx |
| 详情页 | src/view/member/MemberDetail/index.tsx |
| Service | src/services/marketing/coupon.ts |
| Model | src/models/marketing/couponList.ts |

效果对比

xychart-beta title &#34;新人第一个MR被打回次数对比&#34; x-axis [&#34;没有配置&#34;, &#34;有配置&#34;] y-axis &#34;被打回次数&#34; 0 --> 6 bar [5, 1] --- title &#34;新人问'这个放哪里'频率对比&#34; x-axis [&#34;没有配置&#34;, &#34;有配置&#34;] y-axis &#34;每天提问次数&#34; 0 --> 6 bar [5, 0.5] --- title &#34;代码风格统一时间对比&#34; x-axis [&#34;没有配置&#34;, &#34;有配置&#34;] y-axis &#34;所需天数&#34; 0 --> 15 bar [14, 1]
arduino 复制代码
新人第一个 MR 被打回次数
没有配置:█████ 3-5次
有配置:  █ 0-1次

新人问"这个放哪里"的频率
没有配置:每天 5+ 次
有配置:  几乎不问

代码风格统一时间
没有配置:2 周后
有配置:  第 1 天

传统方式 vs AI配置方式对比

flowchart TD subgraph A[传统方式] A1[写规范文档] --> A2[新人阅读文档] A2 --> A3[新人忘记规则] A3 --> A4[写错代码] A4 --> A5[CR打回] A5 --> A6[再看文档] A6 --> A3 end subgraph B[AI配置方式] B1[写配置文件] --> B2[AI自动遵守规则] B2 --> B3[新人代码天然正确] B3 --> B4[CR通过] end A4 -.->|循环3-5次| A6 B3 -.->|第一次就对| B4 style A fill:#f9f2f4 style B fill:#f2f9f2

为什么这比"写文档"有效

markdown 复制代码
传统方式:
写规范文档 → 新人看了 → 忘了 → 写错 → CR 打回 → 再看文档 → 记住了
                                    ↑ 循环 3-5 次

AI 配置方式:
写配置文件 → AI 自动遵守 → 新人写的代码天然正确 → CR 通过
                          ↑ 第一次就对

规范文档是"教人记住规则",AI 配置是"让机器执行规则"。后者不依赖人的记忆力。

可直接抄走的完整模板

markdown 复制代码
# Project AI Configuration

## Tech Stack
- Framework: [填你的]
- UI Library: [填你的]
- State: [填你的]
- HTTP: [填你的]
- Date: [填你的]
- Style: [填你的]

## File Placement
| Type | Path |
|------|------|
| Pages | src/view/<domain>/ |
| Services | src/services/<domain>/ |
| Models | src/models/<domain>/ |
| Components | src/components/ |
| Utils | src/lib/ |
| Hooks | src/hooks/ |

## Naming
- Variables/Functions: camelCase
- Components: PascalCase
- Constants: UPPER_SNAKE_CASE

## Banned Patterns
- No any type
- No moment.js
- No class components
- No inline styles
- No function declarations
- No single file > 250 lines

## Reference Files
- List page: [填路径]
- Form page: [填路径]
- Service: [填路径]
- Model: [填路径]

一句话总结:团队的"潜规则"不应该只存在于老人的脑子里。写成配置文件,让 AI 帮你传承。新人不需要"被教",只需要"被约束"。


💬 你们团队带新人最头疼的是什么?有没有一个"新人必踩的坑"清单?

相关推荐
Ai拆代码的曹操38 分钟前
opencode CLI 源码拆解:yargs + effectCmd 双层架构如何管理 20+ 子命令
架构·ai编程·opencode·源码拆解
AINative软件工程1 小时前
LLM 应用的熔断降级工程实践:Circuit Breaker 不只是重试的升级版
后端·llm·ai编程
倔强的石头_9 小时前
不想每次都从头解释:我用 Doubao-Seed-Evolving 做了一个「稿件接力站」
ai编程
大模型码小白12 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
-XWB-13 小时前
【LLM】Agent Planning 完全指南:8 种纯 LLM 范式 + 8 种混合规划模式详解(二)
人工智能·经验分享·aigc·学习方法·ai编程
沉默王二13 小时前
腾讯一面,我霸气反问:“你说你们在做Agent项目,说说 SubAgent、Plan 模式、Skill 调用这些你们都是怎么做的?”面试官一直在擦汗。。
面试·agent·ai编程
kyriewen13 小时前
我让AI改一个bug——它偷偷动了5个我没让它碰的地方
前端·javascript·ai编程
神奇霸王龙16 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
z1234567898616 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
GeekArch17 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程