开源贡献的真正门槛:不是代码,是认知负荷
关联
开源贡献被很多人卡在第一步——PR 提交后石沉大海,要么被挑细节,要么整个方向被否定,时间和情绪都白搭。Bruno 的核心观点很直接:问题往往不出在你的代码能力上,而出在你没花时间「说维护者的语言」。
复制维护者的风格,别秀自己的
在 GitHub 上找到那些贡献最多的人,筛出他们被合并的 PR,然后照着维护者的风格来写——标题怎么起、提交信息怎么写、PR 描述怎么组织,全部对标。原因很简单:你降低了审阅者的认知负荷。你用他们的语言,他们一看就懂你在提什么;你用完全相反的风格,他们会在心里把你搁置,等到有空再深入研究 。
这有点反直觉——写代码是很个人化的事,你对自己的风格有自豪感。但你是在往一个更大的整体里提交,你的受众不是你自己,而是那些站在你和合并之间的看门人。为他们做适配,不是妥协,是基本功 。
读比写多,尤其在刚开始
如果你是初学者,觉得自己不够格贡献,Bruno 的建议是:花时间读代码。找到你所在领域里代码质量高的项目,大量阅读。
他自己写 Go 代码的方式,基本上是被 Terraform 生态里那些项目塑造出来的。一开始,读要比写多 。
AI 能用,但别把思考外包出去
AI 降低了贡献门槛,但也制造了大量垃圾。维护者现在面对的是轰炸——有人用匿名账号批量生成 PR,有人对着一个仓库疯狂改 readme。Bruno 说的「被善意的泛滥和劣质内容扼杀」指的就是这个 。
他自己用 AI,把它当结对编程的伙伴——让 AI 生成代码,甚至同时跑两份看差异,用它研究深层代码路径。但他花在打磨上的时间远多于生成:一个功能可能干半天,但完善代码、写清楚 PR 描述要花一整天。原因就一句:不想失去自己的身份 。
生成代码很容易,做得多不等于做得好。你仍然需要对最终提交的东西拥有所有权——你视自己为作者,你就是所有者,你就得负责。很多人推代码的时候根本没想过自己还要修它、拥有它 。
一致性胜过强度,但不保证回报
开源有一个天然的过滤器:一致性和坚持胜过爆发式投入。用智能体秒生成一个 PR 很容易,但按风格来写、在社区时间里出现、持续出现——那是另一回事 。
Bruno 的路径是:持续贡献 → 参加社区时间和路线图会议 → 在会议上当面认识维护者 → 获得信任 → 拿到更多权限。他在一个会议上认识 Crow 项目的维护者,当天回酒店写代码,第二天见面就被合并了 。这些是「赢得的权利」,尤其在分发权限时,维护者想知道档案背后是谁 。
但这里有个关键的期望管理:不要抱着「总有一天会被雇用」的目的去贡献,就像不要因为「想变富」去开公司一样 。Bruno 确实因为开源拿到了 Hashicorp 的工作机会,但他说那不是做开源的原因,是工匠精神和持续投入的副产品。而且,它也可能让你哪里也去不了,你不该因此失望 。
维护者正在用各种方式应对 AI 垃圾
Mitchell(在做一个叫 Vouch 的系统)直接转向「默认拒绝」——你得先证明自己是可信的提交者,否则 PR 直接关,下次还关 。Flux 团队反过来用智能体——收到一个竞态条件的 bug 报告,不自己花时间复现,而是扔一堆智能体去尝试重现 。
本集带走
- 先找被合并的 PR,照着风格写:标题、提交信息、PR 描述全部对标活跃贡献者和维护者的写法,降低审阅者认知负荷
- 读比写多:刚开始贡献时,花大量时间读高质量开源代码,让自己的写法被塑造
- AI 生成,自己打磨:可以用 AI 辅助生成代码和研究代码库,但花在打磨和写 PR 描述上的时间要远多于生成
- 把自己当作者和所有者:推出去的代码你要准备修、准备负责,不要推完就不管
- 一致性是真正的过滤器:持续出现比一次性爆发重要,参加社区时间、当面认识维护者是建立信任的关键路径
- 不要带着求职预期去贡献:把它当工匠精神的实践,职业回报是可能的副产品,不是目标
我认为开源目前更大的问题是,它正某种意义上被善意的泛滥和来自那些试图贡献的人的大量劣质内容扼杀
I think the bigger problem for open source is at the moment, it’s sort of being killed with kindness and a lot of slop from people that are trying to contribute
—— 嘉宾 · [00:08]
我花了一整天的时间来完善那段代码,确保我理解所有东西,撰写一个恰当的 PR 描述,因为我不想失去我的身份
I spent a whole lot of day polishing up that code, making sure I understand everything, crafting a proper PR description because I don’t want to lose my identity
—— 嘉宾 · [19:03]
开源本身有一个过滤器。它是一致性和坚持胜过强度
There’s a filter on open source in general. It’s consistency and commitment wins over sort of beats intensity
—— 嘉宾 · [14:27]
这些是赢得的权利,那是我认为你必须小心地对待你把这个授予谁的地方
These are earned rights and that’s I think where you have to be careful with who you grant this to
—— 嘉宾 · [21:57]
顺着「AI 编程」挖下去
- Laurel 产品负责人:怎么用 GitHub 把全公司的工作流变成 AI 技能同公司:GitHub · 同概念:智能体 (agent)
- 把系统提示词删掉八成:Anthropic 团队这样用 Claude 自己造 Claude同公司:GitHub · 同概念:智能体 (agent)
- 用 Cursor 重构遗留代码库:从 PHP 到 React 的完整工作流同概念:PR、智能体 (agent)
换个口味
- 别管金句,去捣鼓东西:Notion 产品负责人谈 AI 时代的产品与品味同公司:GitHub · 同概念:智能体 (agent)
- Satya Nadella:别只盯着模型,私有评估和智能体才是企业的护城河同公司:GitHub · 同概念:智能体 (agent)
- DevOps 之父谈智能体开发:谁来管、怎么管、别踩什么坑同概念:PR、智能体 (agent)
