现代 Engineering 价值观
Jest 作者、前 Meta Distinguished Engineer 分享 AI Agent 时代的六大工程价值观。 从 770 commits/30 天到 "Own your Stack",一份来自顶级工程师的实战宣言。
翻译
全文翻译自 cpojer.net/posts/modern-engineering-values
去年底我在 You are absolutely right!? 里分享了我的 LLM 工作流。我知道它很快会过时,但没想到会过时得这么快。
我真的不敢相信我现在很少手写代码了。或者说,我不敢相信我以前居然是手写代码的! 编程已经根本性地改变了,我一直在想哪些 engineering 价值观仍然重要。
近期产出
过去几个月的 5 个项目:
Vite+
用 Rust 构建发布功能(他不懂 Rust)。前端构建工具的性能增强版。
fate 1.0
Live views、Drizzle & GraphQL 支持、Vite 插件、垃圾回收。
Codiff
快速、极简、美观的 diff review 应用。
Athena Crisis
前 AI 代码库。Agent 循环修了 70+ bug,加新功能,写测试。
Void
元框架和云平台,尚未发布。
"VoidZero plays Pokémon"
自定义 ROM hack + WebSocket,5 个 prompt 搞定,用于内部 All Hands。
Agent 写的代码跟我写的一样好甚至更好,用分钟代替周。既然写代码不再是瓶颈,我完成了很多否则根本不会发生的工作。
现在怎么用 LLM
工具链:Codex CLI + GPT 5.5 high。偏好 CLI 因为从干净状态开始,一个项目一个窗口。
并发模型:3-6 个项目同时,每个项目一个 Ghostty 窗口(左 Codex,右终端)。
空间分配:fate 上方居中、void 左侧、Athena Crisis 右侧。
Prompt 策略:"我想构建 X。从 Y 和 Z 获取上下文,做方案,有问题问我。"先迭代方案再执行。
有效做法
- 先做方案再执行 — 让 Agent 提方案,对话迭代后再执行
- 修 bug 先写失败测试 — 大大增加修复正确问题的概率
- 用 Codiff 做代码 walkthrough — codiff -w 快速审查
- 跑 /review 循环 — 大变更聚焦不同领域审查
无效做法
- 同项目多 agent session — 正交代码变更互相冲突
- 用 low reasoning 模式 — 质量差
- 用 xhigh 模式 — 太慢且过度复杂
- 不修 bug 直接修 — 不写失败测试,Agent 倾向修错东西
六大现代 Engineering 价值观
Strong Ownership
Agent 放大 ownership。懂的人更快,不懂的人更吵。最有效团队:2-3 人 + 隔离仓库。反 monorepo。
Taste
不是代码审美,是"什么值得做"。Agent 能产出大量垃圾,Taste 是筛选器。
Strict Guardrails
Agent = 没上下文的新员工。lint + 自动测试 + 快速验证 = 1 分钟 vs 60 分钟完成工作。
Context in Repo
上下文从 Notion/人脑/生产环境收归仓库。对 Agent 和人类都更友好。注入品味和原则。
Own your Stack
Agent 降低自建成本。产品核心部分如果能实际拥有,就别外包给第三方依赖。
Option Value
每次变更必须解锁更多未来选项。AI 让大规模重构变快,但别把自己逼进死角。
Agent = 没有上下文的新工程师。你不断地把他们扔进代码库。约束越强,迭代越快。
关于管理
Engineering 管理会变得更技术化。管理者不能只拥有方向,必须保持领域专业知识,能自信修改项目,提供技术领导力。Tech Lead Management 是 agent 时代大多数管理者的正确角色。
到底快了多少?
| 指标 | 两年前(2024) | 现在(2026) | 变化 |
|---|---|---|---|
| 30 天 Commits | ~328 | 770 | 2.3× |
| 日均代码行数 | ~5,000 | ~15,000 | 3× |
| 最佳手写日 | 1,200 行/周一次 | 12,000 行/天 | 10× |
我以前被写代码卡住,现在我被行使判断力卡住。让我们发布吧!
工程级解读
运行时模型、架构拆解、DIY 对比、选型决策、诚实限制
压力测试:cpojer 是前 Meta Distinguished Engineer、Jest 作者。他的品味和架构能力是前 0.1%。"3 倍产出"放大的是顶级水平,不是平均产出。文章未提及安全审计、长期维护成本和失败案例。
运行时模型
多项目、多窗口、单 Agent per Project 的并行系统。
每个项目开一个 Ghostty 窗口:左 Codex CLI + 右终端。3-6 项目并行。空间分配:fate 上方居中、void 左侧、Athena Crisis 右侧。瓶颈是审查代码和讨论方向,不是写代码。
关键参数:Codex CLI + GPT 5.5 high · 3-6 并发 · Codiff 审查 · 770 commits/30 天 · 15k 行/天
"Own your Stack" DIY 对比
| 维度 | 依赖第三方(传统) | Own your Stack |
|---|---|---|
| 初始成本 | 低(npm install) | 高 → Agent 降低了 |
| 维护成本 | 依赖上游更新 | 自己维护 → Agent 降低了 |
| 控制力 | 受上游约束 | 完全控制 |
| 知识负担 | 学第三方 API | 理解自己架构(更直觉) |
| 安全风险 | 供应链攻击面大 | 攻击面小,但自己的 bug 自己担 |
| 团队扩展 | 大团队易招人 | 小团队 + 高 ownership |
选型决策框架
Distinguished Engineer 级别
品味和架构能力支撑"自建"决策。能判断什么值得自建。
2-3 人小团队
高 trust + 清晰 ownership 边界。自建栈的沟通成本低。
全新项目
从零开始,没历史包袱。可以用自建栈的架构约束 Agent。
大企业 10+ 人团队
自建栈 = 知识孤岛。招人成本和 onboard 时间成倍增加。
安全敏感系统
自建库的审计负担 > 依赖审计。没经过社区验证。
初中级开发者
品味和架构能力不足。自建需要顶级的判断力。
诚实限制
严格护栏和快速反馈循环是 agent 在 1 分钟还是 60 分钟内完成工作的区别。
Strict guardrails and fast feedback loops are the difference between an agent completing their work in 1 minute or 60.
苏格拉底对话
通过师生对话探索核心观点
老师:假设你现在要启动一个新项目,第一步是什么?
学生:打开 Claude Code,开始写代码?
老师:传统反应。cpojer 的第一步是让 Agent 做方案,迭代方案,然后执行。区别在**你参与的是哪个环节**。直接写代码,精力耗在实现细节。先做方案,精力花在方向判断。
学生:所以核心是"做什么"比"怎么做"更值钱?
老师:对。但有个前提——你得有能力判断"做什么是对的"。这就是 cpojer 反复说 Taste 的原因。好品味不是代码审美,是"什么值得做"。
学生:"Own your Stack" 这条你怎么看?自建一切不是反模式吗?
老师:好问题。cpojer 的逻辑:依赖成本 = 学习 API + 受制于上游 + 供应链风险。Agent 降低了自建成本。关键区别在判断标准——"realistically own"。数据层、UI 框架自建;日志库、加密算法继续用成熟的。
学生:3 倍产出可信吗?
老师:数据是真的,但 context 重要。cpojer 手写一天 1200 行已经是顶级。3 倍放大的是顶级产出。对大多数人,更现实的预期是 1.5-2 倍。
学生:最大的启发是什么?
老师:六个价值观里,**Context in Repo** 最被低估。把散落 Notion、人脑、生产环境的上下文收归仓库,不仅是给 Agent 用,也是给人用。团队里每个新成员 onboard 的时间,就是上下文散落程度的函数。Agent 只是把这个问题放大了——每个 session 都是一个"新员工"。
个性化洞察
基于你的身份和场景,5 条可执行的发现
你的 CLAUDE.md 就是在做这件事
你已维护全局和项目级 CLAUDE.md。下一步:把更多隐性知识(为什么选某个方案、哪些路走过不行)写进去。Agent 不看这些就会走弯路。
和你的开源方向高度契合
做 AI 产品 + 技术自媒体,不需要兼容大团队。独立开发者/小团队,控制力 > 生态兼容性。TS/Node.js + Python + Rust 覆盖 Web + 数据 + 性能三层。
适用于 AI 产品开发
Guardrails 不只是 lint + 测试,还包括 prompt template、输出 schema 验证、错误边界。给 Agent 的约束越强,越不容易跑偏。
你最稀缺也最值钱的资源
技术自媒体 + 开源贡献者,选题就是 Taste。不是所有 AI 新闻都值得分析,不是所有工具都值得试用。时间花在最高杠杆的选题上。
融入你的产品思维
做 AI 产品时,技术选型变化很快。今天 Claude API,明天可能 Gemini。每次架构决策都问:这个决策是锁定了我还是给了我更多选项?避免逼进死角。