English →
博客精读 · 07 · charity.wtf

Charity Majors · charity.wtf
你读代码,是读不出它到底干了什么的

2015 年 12 月至今 · 127 篇 · 仍在更新(最新一篇 2026 年 7 月 8 日)· 2025 年 12 月从 WordPress 搬到 Substack,旧链接全部保留 · 本页通读 14 篇,跨度 2016 年 5 月至 2026 年 6 月

2019 年 10 月,Charity Majors 在自己的博客上摆了两家公司出来,让你猜。

X 公司:成立三年的创业公司,多租户平台,分布式系统,流量忽高忽低,海量用户提交的数据,底层是一个很年轻的数据库。每天部署一次 API,每周二全服务统一发布一次。周二那天经常一整天都在「发上去、再撤回来」。工程师大概每周被半夜叫醒两次。

Z 公司:成立三年的创业公司,多租户平台,分布式系统,流量忽高忽低,海量用户提交的数据,底层是一个自己写的、很年轻的列式存储引擎。代码合并后 30 分钟内自动部署。工程师一年被半夜叫醒不超过两次。

两家公司都是给开发者用的平台,都跑 Go 写的弹性微服务,都把用户自定义数据塞进一个自研的年轻存储引擎里。甚至有四个开发者是同一批人。

然后她揭晓答案:这是她自己前后两份工作。X 是 Parse(2012–2016),Z 是 Honeycomb(2016 至今)。基础设施两边都是她搭的。

差了两个数量级的那个东西,不是技术栈,不是人的水平,也不是运气。是从「写完这行代码」到「亲眼看见它在生产环境里干了什么」之间隔了多久。

这就是 Charity Majors 十一年、127 篇博客里唯一的那个想法。她把它翻来覆去用在四个看上去毫不相干的地方,每次都得出让人不太舒服的结论。

她跟什么较劲

她是 Honeycomb 的联合创始人兼 CTO,可观测性(observability)这个词在软件业的当代用法基本是她和同事 2016 年从控制论里搬过来的。但她真正的根问题比这个朴素得多,而且几乎所有程序员都默认它不成问题:

你写的代码,你其实不知道它在干什么。读代码读不出来,跑测试也跑不出来。唯一能知道的办法,是让真实用户去跑它,然后你去看。

You’ll never know — not really — what the code you wrote does just by reading it. The only way to be sure is by instrumenting your code and watching real users run it in production. 光靠读,你永远不会真的知道自己写的代码干了什么。唯一能确定的办法,是给代码打上埋点,然后看着真实用户在生产环境里跑它。 《In Praise of "Normal" Engineers》,2025 年 6 月

如果你接受这一条,剩下的全是推论。而她的推论一路推到了一个很少有人愿意说出口的地方:软件行业几乎所有的功能失调,都是同一个东西——一条被拉长或者被切断的反馈回路。技术上的、组织上的,现在还有 AI 上的。

她最狠的四下

一、恐惧是最大的技术债。2019 年有人发了个「周五别推生产」的可爱表情包,她回了一条自己都承认「同样夸张、同样站不住脚」的推文:害怕周五部署的话,把所有开发人力从功能开发上撤下来去修流水线,修多久都值。互联网炸了半年。她后来写文章解释:真正的成本不在周五那天,在你为了绕过恐惧而养成的所有习惯——攒着改动一起发、发完提心吊胆、周一花两天在一坨混在一起的改动里找是谁的锅。

Fear of deploys is the ultimate technical debt. 对部署的恐惧,是终极的技术债。 《Friday Deploy Freezes Are Exactly Like Murdering Puppies》,2019 年 5 月

而她给出的证据不是道理,是上面那两家公司。她的原话是:「我们的系统在总是改完就发的时候更稳定,在我们划出时间段暂停部署的时候更不稳定。」她自己说这在当时不是共识,她也被这个结果吓了一跳。

二、指标在写入的那一刻就把上下文扔了。业界十年来把可观测性讲成「三大支柱:指标、日志、链路追踪」。她 2024 年干了一件很不客气的事:给这套东西编了个版本号,叫可观测性 1.0,然后宣布它是上一代。理由是纯技术的:一个「指标」就是一个数字加几个标签,请求的其余全部上下文在写进去的那一刻就被丢掉了,所以你事后永远无法把它和同一个请求的别的数据关联起来。你只能提前猜自己将来想问什么问题。

Metrics are a terrible building block for understanding rich data, because you have to discard all that valuable context at write time […] You will go broke and go mad if you try. 指标是理解丰富数据的一块糟糕基石,因为你必须在写入时丢掉所有那些宝贵的上下文 [……] 你要是硬来,会既破产又发疯。 《Is it time to version observability? Signs point to yes》,2024 年 8 月

她还去数了账单:同一个用户请求,你可能同时付费存了日志、指标、APM、链路追踪、前端监控五份。「五倍」还算是保守的。

三、管理不是升职。她 2017 年那篇《The Engineer/Manager Pendulum》是她全站被自己回引最多的一篇。核心是一句在硅谷职级体系里近乎异端的话:

Management is not a promotion, management is a change of profession. And you will be bad at it for a long time after you start doing it. If you don’t think you’re bad at it, you aren’t doing your job. 管理不是升职,管理是转行。而且你开始做它之后,会有很长一段时间做得很烂。如果你不觉得自己烂,那说明你没在做这份工作。 《The Engineer/Manager Pendulum》,2017 年 5 月

由此她推出「钟摆」:最好的一线工程经理,是那些离开动手写代码从没超过两三年的人;最好的技术负责人,是做过管理的人。所以别选车道,来回走。「既然不是升职,你也就没有什么身份可以放弃。」

四、代码不是理解本身,只是理解的一份缓存。2026 年她把同一把刀捅进了 AI。她的结论跟两边都不一样:AI 不是让工程纪律变得不必要,而是让它第一次变得非要不可。因为代码一旦可以随时重新生成,「我们不敢删掉重写」就不再是谨慎,而是一个诊断结果——它说明我们根本不知道这段代码到底承诺了什么。

The fact that we cannot regenerate our code in the same way is a sign that we do not understand it. We do not know which commitments we have made, we do not know which dependencies will break. We find them by breaking them, mostly. 我们没法像重建基础设施那样重新生成代码,这件事本身就说明我们不理解它。我们不知道自己做过哪些承诺,不知道哪些依赖会断。我们基本上是靠把它们弄断来发现它们的。 《AI demands more engineering discipline. Not less》,2026 年 6 月

还有一句会让很多人不高兴的:别把「人类不可替代」的论证押在人类是更好的质量把关人上。「说到验证,我们就是最弱的那一环。」

她哪里可能站不住

最大的那条她自己说过:可观测性 2.0 的正确答案,恰好就是她公司卖的东西。她在 2019 年那篇文章里承认,正因为怕听着像个烦人的推销员,她一直没敢把这个论点讲透——「这对我的论证绝对是有害的」。而 2024 年给别人的架构编上「1.0」这个版本号,本身就是一次命名权的争夺。

其次是样本。她的黄金案例 Honeycomb 是她自己从零搭起来的、客户就是工程师的开发者工具公司。她的建议默认你所在的组织有权力去修流水线——很多人没有。

但她也是那种会把自己的翻车写成故障复盘的人。2018 年她发了一篇给女性的职业建议,被网络围攻一周,她的处理方式是照 SRE 的格式写了篇《事后复盘》,逐条列「不后悔 / 后悔 / 半后悔」。2023 年她回头看自己「最自豪的管理成就」——花了好几年、每周 50% 到 75% 的情绪带宽把一个人留在团队里——重新判定为失败:

All that my coddling ultimately did was teach them the wrong lessons, and prevent them from learning the right ones. 我那样宠着他,最后只是教会了他错误的功课,同时挡住了他学会正确那些。 《Helicopter Management》,2023 年 6 月

想看完整的四个想法各自是怎么被发现的、她怎么用一条「站不住脚」的推文当鱼饵钓出自己论证的弱点、「运维」这个词是怎么在二十年里变成脏话的(她把锅扣给了谁)、可观测性 1.0 和 2.0 的数据模型到底差在哪一步,以及她自己在 2026 年承认的那个数字——切到上面的「完整版」。