Hello 大家好呀,我是计算机魔术师。
凌晨三点的 Git 统计,以及那个荒诞的 100 万
凌晨三点,当你还在为某个 NullPointerException 秃头,或者在 Slack 里和产品经理为了一个像素的偏移反复拉扯时,在大洋彼岸的某个服务器里,Git 的提交计数器正在疯狂跳动。

这一改,边界就开始漂了
这不是什么 DDoS 攻击,也不是哪个实习生不小心把 node_modules 提交进了仓库,而是 Harness 团队的三个工程师,正在用一种近乎“暴力”的方式重塑软件工程。
5 个月,3 个人,100 万行代码。这个数字像一块巨大的板砖,拍在每一个还在坚持“纯手工打磨”的程序员脸上。
这件事为什么和你有关系?因为我们正处于一个极其尴尬的交界点:你还在纠结变量命名是用 user_list 还是 users,而有人已经开始用 AI 开着“代码复印机”批量生产系统了。

这个追问,像没打算让我活着出去
如果代码的产出成本正在无限趋近于零,那么我们过去二十年积累的“写代码”经验,可能正迅速贬值为一种昂贵的业余爱好。
这 100 万行代码里,究竟藏着通往未来的钥匙,还是仅仅堆起了一座不可维护的屎山?

看到这个行数,我的 IDE 已经开始冒烟了
为什么是现在:Harness Engineering 的暴力美学
1. 从“手工作坊”到“自动化流水线”的范式转移
传统的软件开发本质上是“手工作坊”。哪怕你用着最先进的 IntelliJ,写着最优雅的 Rust,你依然是在一针一线地缝补逻辑。
在这种范式下,100 万行代码意味着成千上万个工时,意味着庞大的沟通成本和不可避免的人为错误。
但 Harness 提出的 Harness Engineering 概念,试图把这种“缝补”变成“铸造”。
AI 在这里不再是一个帮你写注释的副驾驶(Copilot),而是一个被装进了“工程外骨骼”里的重型操作员。
Harness Engineering 的核心在于:不再直接编写代码,而是编写“生成代码的约束”。这就像工业革命时期,人们不再学习如何手工织布,而是学习如何设计和维护织布机。
当 1 行 Prompt 经过精密的工程约束,能换回 1000 行高质量的样板代码时,传统的研发效能度量衡就彻底崩塌了。
2. 杠杆效应:1 行 Prompt 换 1000 行样板代码
这种暴力产出的背后是极致的模板化消灭。在 Harness 的实践中,大量的 CRUD、API 胶水代码、单元测试桩都被抽象成了可预测的模式。

这一把,终于像样了
AI 代理(Agent)介入了开发回路,它们不是在“猜”你想写什么,而是在既定的工程框架内“填充”逻辑。
这种杠杆效应让 3 个工程师变成了 3 个“工厂经理”。他们负责定义接口契约、业务边界和安全准则,剩下的体力活全部交给 AI。

这锅先别急着往我头上扣
这种感觉就像你以前在用勺子挖隧道,现在你开上了一台盾构机。爽是爽了,但你得确保盾构机的方向没偏,否则你挖出来的可能不是隧道,而是直通地心的坑。

这哪是写代码,这是在开复印机啊
拆开讲透:3 个人如何撑起一座“代码摩天大楼”
1. 模块化的极致:把系统拆成 AI 听得懂的零件
为什么你用 ChatGPT 写个稍微复杂的项目就翻车?因为 AI 的上下文窗口是有极限的,它的“脑容量”装不下你的整个单体架构。Harness 成功的关键在于极致的模块化。
他们把系统拆成了无数个微小的、自包含的零件,每个零件的逻辑复杂度都控制在 AI 能够完美理解的范围内。
这就涉及到了 接口契约(Contract-First) 的决定性作用。在 AI 协作中,人与 AI、AI 与 AI 之间的沟通不再靠文档,而是靠强类型的 Schema。
只要契约一定,AI 就能在不理解全局的情况下,精准地完成局部实现。这就像乐高积木,只要接口标准统一,你不需要知道整座城堡的设计图,也能拼好一个窗户。
2. 自动化治理:如果代码会自我繁殖,谁来做绝育?
当代码以每天数千行的速度增长时,传统的 Code Review 已经失效了。你让一个资深架构师每天看 5000 行 AI 生成的代码,他大概率会在第三天选择辞职去送外卖。
因此,Harness 必须建立一套基于语义分析的自动化治理流水线。
⚠️ 踩坑提醒:千万不要迷信 AI 生成的“逻辑闭环”。AI 最擅长写出那种看起来天衣无缝、实则在极端边界条件下会瞬间爆炸的代码。
你需要的是一套“捕鼠器”——自动化的静态分析工具、覆盖率极高的契约测试,以及 AI 驱动的“审稿代理”。用 AI 来监督 AI,是目前唯一的解法。
# 一个典型的工程约束定义示例
constraints:
api_style: restful
security_check: mandatory
test_coverage_min: 95%
error_handling: centralized_logger
forbidden_patterns:
- "eval()"
- "hardcoded_secrets"

Review 这 100 万行,可能需要我活到 200 岁
繁荣下的阴影:100 万行代码的维护代价
1. 认知负荷:人类大脑的 7±2 瓶颈
心理学有个著名的 7±2 原则,说的是人类短时记忆能处理的信息块数量。即便有 AI 帮忙,这 100 万行代码最终还是得由那 3 个人负责。
当系统出现一个跨模块的诡异 Bug 时,这 3 个人真的能在大脑里复现那座“代码摩天大楼”的结构吗?
这种“知识碎片化”是极其致命的。代码生成得太快,人类理解的速度跟不上,结果就是系统中充满了“代码坟墓”——那些运行良好但没人敢动、没人理解逻辑的黑盒。
长期来看,这可能会导致一种新型的“技术债”:不是因为代码写得烂,而是因为代码太多了,多到超出了人类的认知带宽。
2. 性能与冗余:AI 并不在乎你的内存条
AI 写代码有个坏习惯:它喜欢堆砌。为了完成一个简单的功能,它可能会引入三个不必要的库,写出五层嵌套的逻辑。在 Harness 的百万行代码中,冗余逻辑的占比是一个绕不开的话题。
AI 并不在乎你的服务器需要多大的内存,它只在乎能不能快速闭环逻辑。
在真实案例中,我们发现 AI 生成的代码往往存在过度设计。一个简单的配置读取,它能给你整出一套观察者模式加策略工厂。
这种“逻辑肥胖症”在初期不明显,但当百万行规模的系统跑起来时,那些微小的性能损耗会累积成巨大的延迟。这时候,你还是得拎着手术刀,手动去切除那些 AI 留下的“赘肉”。

别动!这行代码虽然没用,但它是整个系统的承重墙
写在最后:别做代码的搬运工,做代码的驯兽师
Harness 的这 100 万行代码,其实是给所有程序员敲响的一记警钟。它告诉我们,“产出代码”这件事正在失去价值,而“约束代码”的能力正在成为核心竞争力。
未来的顶级工程师,不再是那个能手写红黑树的人,而是那个能设计出一套完美的工程约束系统,让 AI 在里面乖乖干活的人。
我的判断是:代码通胀不可避免,未来的软件工程将变成一种“驯兽”的过程。你手里的 AI 是一头力大无穷但缺乏常识的猛兽,你的任务不是替它拉车,而是给它套上缰绳,修好路基。
如果代码行数不再值钱,我们该如何衡量一个工程师的价值?是看他解决问题的维度,还是看他控制复杂度的手腕?
那么,如果明天你的老板要求你用 3 个人维护 100 万行代码,你第一反应是提离职,还是开始寻找你的“外骨骼”?欢迎在评论区聊聊你的看法。
参考文献
Harness.io: "The 1 Million Lines Project" Case Study
DORA Research Program: "2024 State of DevOps Report"
OpenAI: "Best Practices for Code Generation with LLMs"
如果你想继续追更,欢迎在公众号 计算机魔术师 找到我。后续的新稿、精选合集和阶段性复盘,会优先在那里做串联。