这篇访谈介绍了浏览器开发者 Yeunjoo Choi 的职业生涯。她分享了在 Igalia 为企业客户定制和维护 Chromium 浏览器分支的经验,强调了通过隔离下游代码来简化更新(Rebasing)的策略。她也回顾了自己从电子专业转行软件开发,并克服恐惧、逐步参与大型开源项目的个人成长历程。最后,她讨论了 Chromium 社区强大的测试文化,并表达了对 AI 工具提升开发效率的积极看法。
企业浏览器定制与维护
Yeunjoo 目前的工作重点是为企业开发定制版的 Chromium 浏览器。这些企业客户需要特定功能,例如特殊的策略控制、数据保护和品牌化。
- 功能开发: 工作不仅限于在 JSON 文件中添加策略,而是需要创建新的代码路径和挂钩,有时还要对接客户自有的策略引擎。
- 品牌化: 这项工作不仅仅是更换图标和文字,还包括定制设置页面、新标签页和启动画面等,这让她有机会与用户体验(UX)设计师直接合作。
- 维护挑战: Chromium 是一个更新迅速的大型代码库,保持企业分支(forks)的同步是一大挑战。这个过程被称为 “rebasing”(变基)。
我尽量以减少变基时合并冲突的方式来构建下游的变更。例如,我倾向于在隔离的层中实现新的下游功能……并重用上游组件,以保持我自己的代码增量尽可能小。
从旁观者到开源贡献者
在加入 Igalia 之前,尽管有近十年的浏览器引擎工作经验,Yeunjoo 却从未为开源项目贡献过代码。她坦言,自己曾感到不安和恐惧。
曾经的担忧:
- 害怕破坏被广泛使用的项目。
- 怀疑自己为特定产品所做的工作对上游社区没有价值。
- 不习惯与不同文化背景的人用英语进行技术讨论。
转变的现实:
- 她发现开源社区对新贡献者非常欢迎,并愿意提供帮助。
- 她的第一个上游贡献是一个小型的重构提交,过程比想象中容易得多。
- 从小的提交开始,她逐渐熟悉了 Chromium 的生态系统,即使是大型的提交也不再令人生畏。
我终于意识到,开源项目比我想象的要容易接近。
Chromium 的开发与文化
Yeunjoo 的经历揭示了在像 Chromium 这样的大型项目中工作的现实情况,尤其是其独特的开发文化和技术挑战。
- 大规模重构: 她曾参与谷歌主导的 MPArch 重构项目。这种规模的架构升级需要大量贡献者协同工作,这也是谷歌需要像 Igalia 这样的外部公司提供帮助的原因。
- 强大的测试文化: Chromium 拥有数以万计的测试,涵盖单元测试、集成测试、布局测试等。测试是必不可少的。
- 贡献者被要求为自己的变更编写具有良好覆盖率的测试。
- 代码审查者通常会检查是否包含了测试。
- 这种文化是 Chromium 能够在支持众多平台和庞大代码库的同时持续发展的关键原因之一。
- 编译与效率:
- 干净地编译一次 Chromium 可能需要数小时(在旧笔记本上曾需 9 小时)。
- 开发者使用
ccache等工具加速本地构建,并依赖谷歌的远程构建服务来运行合并前的测试。
个人背景与未来展望
Yeunjoo 的职业道路并非一帆风顺,她从电子专业起步,通过在工作中不断学习,最终成长为一名资深的软件工程师。
- 职业起点: 大学主修电子,但对软件开发更感兴趣,因为能更快看到成果。入职后被分配到浏览器团队,从零开始学习计算机科学和浏览器开发。
- 学习之道: 她通过阅读成熟的开源浏览器引擎代码学到了大量软件工程知识,并认为这是一个“各种技术的熔炉”。
- 对 AI 的看法: 她正积极学习如何利用 AI 工具(如 Claude Code)来提高生产力,尤其是在理解陌生代码和追踪复杂代码路径方面。她认为社区正处于适应新技术的过渡期,并对此持乐观态度。