AI 时代,代码洁癖者,别跟 AI 抢写,管好「门禁」

AI 时代,代码洁癖者,别跟 AI 抢写,管好「门禁」

Scroll Down

Cursor 一分钟给我生成了 200 行能跑的代码。我扫了一眼,变量名 data1、tempList,异常吞了,Optional 套了三层——手痒,想全删重写。

同事说:「能跑就行,先上线。」

我愣了一下:AI 把「写代码」的价格打到了地板价,洁癖如果还停在「每一行必须亲手写漂亮」,只会又累又焦虑。但如果把洁癖当成标准制定 + 审查 + 边界控制,在 AI 时代反而更值钱。


一、谁是「代码洁癖者」?

不是贬义词。通常有几条命中:

表现 背后其实在追求
见不得魔法数、缩写变量名 可读性、可维护性
分层乱了、循环依赖就难受 架构清晰
重复代码必须抽、命名要对齐 DRY、一致性
没测试、没注释(或注释说废话)不放心 可验证、可交接
Code Review 会抠格式、边界、异常 工程质量

核心:你不是爱写字,是爱「代码应该长什么样」。 这和 AI 并不天然冲突——冲突在于,你还在用「手写时代」的方式表达这份坚持。


二、AI 时代,洁癖者为什么容易焦虑?

AI 擅长 快、全、像那么回事;洁癖者在意 稳、简、长期能维护。

AI 常见输出 洁癖者的反应
一次生成大段代码 「这谁以后敢改?」
风格随 prompt 飘 「项目规范呢?」
幻觉 API、编造依赖 「没编译过就敢提交?」
修 A 坏 B 「边界呢?测试呢?」

焦虑的本质:产出速度是 AI 的,质量责任还是人的。 你以前靠「写得慢但写得净」建立优势;现在 AI 写得比谁都快,优势被稀释了。

但反过来看:Vibe Coding 越泛滥,能守住质量底线的人越缺。 见《会让 AI 写、做对、稳定交付》那篇——第二层 Spec Coding、第三层 Harness,恰恰是洁癖者的主场。


三、生存法则:从「手写洁癖」到「审查洁癖」

1. 接受分工:AI 起草,你定稿

手写时代 AI 时代
你写每一行 AI 出草稿,你改关键 20%
洁癖体现在落笔 洁癖体现在 规则、Review、门禁
价值 = 实现功能 价值 = 定义什么叫对 + 证明它对了

别跟 AI 比手速,比判断力。

2. 把洁癖「外置」成 AI 读得懂的约束

AI 不会猜你们团队的品味,你得写进它能遵守的地方:

  • 项目规范:.cursor/rules、AGENTS.md、Checkstyle / Spotless 配置
  • Prompt 模板:「遵循现有分层,Controller 不写 SQL,异常用业务异常类」
  • 示例驱动:「参考 OrderService 的写法,保持命名和异常处理一致」
## 代码要求(贴进 Agent 规则)
- 变量名禁止 data1/temp,用业务语义
- 禁止空 catch;外部调用必须设 timeout
- 新接口必须带单元测试,覆盖正常 + 边界
- 改动范围最小化,不要顺手重构无关文件

洁癖不再是脑内标准,而是可执行的 Spec。

3. 建立 Review 清单,而不是逐行重写

AI 交稿后,我按这张表过一遍(5~10 分钟):

检查项 问一句
正确性 编译、测试、主流程跑通了吗?
边界 空值、超时、并发、幂等考虑了吗?
一致性 命名、分层、异常处理和项目一致吗?
范围 有没有多改、漏改、引入无关依赖?
安全 SQL 注入、敏感信息日志、权限校验?

只有清单里红灯项,才动手改或打回让 AI 重改——不全盘否定,也不全盘接受。

4. 知道什么时候该松手

洁癖的敌人有时不是 AI,是过度优化:

该坚持 可以放过
公共模块、核心链路、对外 API 一次性脚本、POC、内部分析工具
安全、事务、并发 不影响行为的命名偏好(若团队有统一工具会 format)
会被 copy 的「模板代码」 AI 生成后你反正要删重写的废稿

洁癖要分级:P0 必须净,P2 可以脏一点换速度。


四、与 AI 协作的实操姿势(Java 后端)

1. 先 Spec,再 Generate

❌ 「帮我写一个订单接口」
✅ 「在 order 模块新增取消接口:入参 orderId,校验状态=已支付才
    可取消,调 OrderService.cancel,事务内只动 DB,返回统一 Result。
    参考 CancelOrderRequest 现有风格,补单测。」

洁癖者的工作前移:把「应该长什么样」说清楚。

2. 小步提交,别一次生成整个模块

  • 一次只做:一个接口 / 一个方法 / 一个测试类
  • 每步 git diff 看过再下一步
  • AI 适合 填肉,你守住 骨架(包结构、接口定义、领域模型)

3. 用工具代替口水仗

目的 工具
格式统一 Spotless、Google Java Format
静态扫描 SpotBugs、Sonar、IDE 检查
测试门禁 CI 里 mvn test 不过不准合并
AI 行为约束 Cursor Rules、项目 Skill

能自动化的洁癖,别用手抠。

4. 你当「最后编译器」

AI 不会为你的线上故障负责。上线前洁癖者最后一道关:

  • 我是否亲手跑过主路径?
  • 是否理解每一行为什么在这?
  • 若 AI 代码错了,我能否10 分钟内定位?

看不懂的 AI 代码,不许合主分支——这不是老派,是职业底线。


五、洁癖者在 AI 时代的三种新角色

角色 做什么
规范制定者 写 Rules、模板、架构约束,让 AI 一次生成就接近合格
质量审查者 Review、测试设计、安全与边界把关
Harness 搭建者 CI、lint、测试、Skill,让「脏代码」进不了主干

从「最会写干净代码的人」,变成「最会让 AI 稳定产出干净代码的人」。


六、几条硬规矩

  1. AI 是实习生,不是架构师——方向你定,它填实现。
  2. 洁癖用在门禁上,别用在每一行亲自写。
  3. 规范写进 Rules / Spec,别只存在脑子里。
  4. 看不懂的 AI 代码不许合,比「不完美但能跑」更危险。
  5. 速度交给 AI,责任留给自己。

洁癖者常问:设计模式、Spring 源码、JVM 还要专门啃吗?见同系列:AI 能写代码了,还要学设计模式、Spring 源码和 JVM 吗?


参考内容