Skip to content

Part 4: 使用边界与团队采用 ​

4.5 使用边界 ​

4.5.1 什么时候该用 / 不该用 AI ​

text
┌─────────────────────────────────────────────────────────────────────┐
│  AI 使用场景光谱                                                     │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    放心用                    谨慎用                     最好别用     │
│    ◄─────────────────────────────────────────────────────────────►  │
│                                                                     │
│    · 拼写检查               · 业务逻辑实现              · 安全关键代码│
│    · 格式化                 · 不熟悉的领域              · 架构决策    │
│    · 样板代码               · 性能优化                  · 加密实现    │
│    · 文档草稿               · 并发代码                  · 认证授权    │
│    · 单元测试               · 数据库设计                · 支付处理    │
│    · 代码解释               · API 设计                  · 合规代码    │
│    · 重构建议               · 错误处理策略              · 你不打算    │
│    · 命名建议               · 第三方集成                  理解的代码  │
│                                                                     │
│    你完全理解               你需要仔细审查              你必须亲自写  │
│    AI 只是加速              AI 是参考意见              或深度审查    │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

引用 软件工程的「纯」与「不纯」:

text
┌─────────────────────────────────────────────────────────────────────┐
│  纯粹工程 vs 不纯粹工程                                              │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    纯粹工程                           不纯粹工程                     │
│    (Pure Engineering)                 (Impure Engineering)          │
│                                                                     │
│    ┌─────────────────────┐           ┌─────────────────────┐       │
│    │ · 你非常了解的问题   │           │ · 你只有粗浅理解     │       │
│    │ · 社区不熟知        │           │ · 问题不新颖        │       │
│    │   (值得研究)      │           │   只是对你新        │       │
│    │ · 在专长极限边缘    │           │ · 很少处理透彻      │       │
│    │ · 有无限时间        │           │   理解的问题        │       │
│    │                     │           │ · 紧迫的截止日期    │       │
│    └──────────┬──────────┘           └──────────┬──────────┘       │
│               │                                  │                  │
│               ▼                                  ▼                  │
│    ┌─────────────────────┐           ┌─────────────────────┐       │
│    │   AI 帮不上忙        │           │  AI 可能比你更聪明   │       │
│    │   (需要深度思考)   │           │  (快速出活)        │       │
│    └─────────────────────┘           └─────────────────────┘       │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

作者观点

AI 最擅长的是「不纯粹工程」——那些你知道怎么做、但做起来很繁琐的事情。而「纯粹工程」——需要深度思考和创造性的部分——还是得靠你自己。

4.5.2 技能退化警示 ​

行业警示

来源:如何避免在 AI 时代技能退化 [1]

「今天跳过『艰难方式』的初级开发者可能会过早触及天花板,缺乏成长为高级工程师的深度。」

开发者自述:

「我发现自己不再写代码,只是等 Copilot 给我代码。我已经忘了每天都在用的函数和类型。」

三个需要警惕的征兆:

征兆表现后果
Code Review 变水基础错误开始漏过(线程安全、逻辑问题)代码质量下降,技术债累积
调试能力退化能快速生成代码,但无法定位问题遇到 AI 搞不定的问题时完全不知道从哪下手
心智模型侵蚀只会「调用」不会「设计」系统越写越乱,最后只能推倒重来

X-Y Problem 陷阱:

python
# ❌ 问方案,不问问题
# 问 AI:"怎么让这个循环更快?"
for i in range(len(data)):  # AI 优化了循环
    process(data[i])

# ✅ 理解本质:先问「为什么慢」
# 发现瓶颈是 I/O,不是循环
async def process_all(data):
    await asyncio.gather(*[process(d) for d in data])

X-Y Problem:你想解决 X,却问 AI 怎么做 Y。AI 会认真帮你优化 Y,但 X 才是真正的问题。

一条判断标准:

专家观点 — Simon Willison [^55]

「我的黄金法则是:我不会提交任何我无法向别人解释的代码。」

预防策略:

  • 定期 Unplugged 编程(关闭 AI 辅助)
  • 保持学习日志,记录 AI 帮你做的事
  • 刻意练习判断力 — 决定何时用 AI、何时手写

延伸阅读

The Paradox of Augmentation [2] — AI 初期提升效率,长期导致技能退化的数学模型

4.5.3 成本意识 ​

text
┌─────────────────────────────────────────────────────────────────────┐
│  对话累积的成本问题                                                  │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    第 1 轮对话:输入成本 500 tokens                                  │
│    第 2 轮对话:输入成本 2000 tokens(包含第 1 轮历史)              │
│    第 3 轮对话:输入成本 4000 tokens(雪球越滚越大)                 │
│    ...                                                              │
│    第 10 轮对话:输入成本可能已经是第 1 轮的 20 倍                    │
│                                                                     │
│    这就是为什么 Claude Code 有 /clear 命令                           │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

Token 效率优化建议:

建议说明
定期 /clear任务完成或对话偏离时,清空重新开始
精简 CLAUDE.md不要塞太多内容,60 行以内最佳
MCP 不要装太多每个 MCP Server 的工具定义都占 Context
具体的 prompt一次说清楚,避免来回澄清
分任务处理大任务拆成小任务,每个任务独立对话

4.6 团队采用 ​

4.6.1 OCaml 13K PR 案例 ​

2025 年 11 月,一位热情的开发者给 OCaml 编译器项目提交了一个 13,000 行的 PR [3]。

这个 PR 是用 Claude 全程生成的,目的是实现 DWARF 调试支持。结果?被 maintainer 锁定并拒绝了。

text
┌─────────────────────────────────────────────────────────────────────┐
│  OCaml 13K PR 事件时间线                                             │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  提交者: 一位热情的外行用户                                          │
│  工具: Claude AI                                                    │
│  PR 规模: 13,000+ 行代码                                            │
│                                                                     │
│  问题 1: 没有事先讨论就提交巨型 PR                                   │
│          └─ 浪费了 volunteer maintainer 的时间                      │
│                                                                     │
│  问题 2: AI 生成的代码里有错误的版权声明                             │
│          └─ 把代码归属给了 Mark Shinwell(一个真实的人)             │
│                                                                     │
│  问题 3: 被问到为什么有这个归属时,提交者说:                        │
│          「Beats me. AI decided to do so and I didn't question it」 │
│          (我也不知道,AI 决定这么做的,我没质疑)                   │
│                                                                     │
│  问题 4: 把大量 .md 文件加进了 .gitignore                            │
│          └─ 明显没有认真 review 过自己提交的代码                     │
│                                                                     │
│  结果: PR 被锁定,maintainer 非常耐心但明确地拒绝了                  │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

教训:

「提交代码的工程师始终对代码质量、安全和功能负责,无论 AI 是否参与。」

4.6.2 分阶段采用策略 ​

来自 Pete Hodgson 和 Jellyfish 的建议:

text
┌─────────────────────────────────────────────────────────────────────┐
│  团队采用 AI 编程的三个阶段                                           │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    阶段 1: 实验                                                      │
│    ┌─────────────────────────────────────────────────────────────┐  │
│    │  目标: 理解能力和局限                                        │  │
│    │  活动:                                                       │  │
│    │    · 小范围试用(1-2 人先跑起来)                            │  │
│    │    · 记录使用经验(踩了什么坑、学到什么)                     │  │
│    │    · 尝试不同场景(哪些适合 AI、哪些不适合)                  │  │
│    │                                                              │  │
│    │  ← 我们团队目前在这里                                        │  │
│    └─────────────────────────────────────────────────────────────┘  │
│                          │                                          │
│                          ▼                                          │
│    阶段 2: 采用                                                      │
│    ┌─────────────────────────────────────────────────────────────┐  │
│    │  目标: 成为日常工具                                          │  │
│    │  活动:                                                       │  │
│    │    · 团队培训(今天这个分享算是开始)                        │  │
│    │    · 共享配置(CLAUDE.md、MCP 配置)                         │  │
│    │    · 建立 Code Review 规范                                   │  │
│    └─────────────────────────────────────────────────────────────┘  │
│                          │                                          │
│                          ▼                                          │
│    阶段 3: 影响                                                      │
│    ┌─────────────────────────────────────────────────────────────┐  │
│    │  目标: 衡量实际效果                                          │  │
│    │  活动:                                                       │  │
│    │    · 对比使用前后的效率指标                                  │  │
│    │    · 识别最佳实践,固化成规范                                │  │
│    │    · 持续迭代改进                                            │  │
│    └─────────────────────────────────────────────────────────────┘  │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

4.6.3 Oxide 五原则 ​

企业实践 — Oxide 公司

背景:硬件+软件公司,由前 Sun/Joyent 资深工程师创办(含 DTrace 作者 Bryan Cantrill),只招资深工程师 来源:RFD 576: Using LLMs at Oxide [4]

原则解释我的理解
责任人类判断始终在环内,对所有输出负责不能说「AI 写的,我不知道」
严谨LLM 应该锐化思考而非替代思考用 AI 加速,不是用 AI 偷懒
同理心考虑内容创作者和消费者想想 Reviewer 的时间,想想维护者的负担
团队合作保持真诚的沟通如果用了 AI,就说用了;不要假装是自己写的
紧迫感的平衡不为速度牺牲质量快不是目的,好才是

4.6.4 代码审查底线 ​

对 AI 生成代码的审查,应该多问两个问题:

问题为什么重要
「为什么选择这个方案?」如果答不上来,说明你没理解代码
「考虑了哪些替代方案?」如果没考虑,说明你只是接受了 AI 的第一个建议

4.7 Q&A 与资源 ​

4.7.1 常见问题 ​

问题简短回答
「Claude Code 要钱吗?」要,按 token 计费,公司应该会统一采购
「和 ChatGPT 比哪个好?」写代码的话,Claude 目前更强;但选型要看具体场景
「会不会泄露公司代码?」Anthropic 声称不会用 API 数据训练模型,但敏感代码还是要注意
「我完全不懂 AI,能用吗?」能,但建议先从简单任务开始,不要一上来就 Vibe Coding
「AI 会取代程序员吗?」短期不会,但会改变工作方式;不用 AI 的程序员可能会被用 AI 的程序员取代
「英文不好影响大吗?」有影响但不大,Claude 中文支持不错;关键是学会组织 Context

4.7.2 资源推荐 ​

入门必读:

资源说明
Claude Code Best PracticesAnthropic 官方最佳实践
Claude Code Docs官方文档,遇到问题先查这里
如何避免在 AI 时代技能退化中文,技能退化警示

进阶阅读:

资源说明
Oxide RFD 576企业级 LLM 使用策略
一个半月高强度 Claude Code 使用后感受喵神的文章,实战经验
Context Engineering Guide深入理解 Context Engineering

4.7.3 最后一句话 ​

用 AI 加速你已经理解的工作,而不是用它跳过你应该学习的过程。

这是我这几个月踩坑下来最深的体会。希望对大家有帮助。


参考资料 ​


  1. 📝 L3 | 如何避免在 AI 时代技能退化 | 宝玉的分享 - 中文译文,原文详述技能退化的四个征兆和七条实践建议。 ↩︎

  2. 🔬 L2 | The Paradox of Augmentation | SSRN - AI 增强悖论的理论模型:AI 初期提升效率,长期导致技能退化的数学模型。 ↩︎

  3. 💬 L4 | AI has a deep understanding of how this code works | Hacker News - 2025 年 10 月 OCaml 编译器 13K 行 AI 生成 PR 事件的社区讨论,展示了 AI 辅助编程的典型反面案例。 ↩︎

  4. 🔬 L1 | Oxide RFD 576: Using LLMs at Oxide - Oxide 公司关于企业级 LLM 使用的详细策略文档,强调责任、严谨、同理心等核心价值观。 ↩︎

基于 VitePress 构建