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

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

Scroll Down

Cursor 一分钟给我生成了 200 行能跑的代码。我扫了一眼,变量名 data1tempList,异常吞了,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/rulesAGENTS.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 吗?


参考内容