Synth Daily

Igalia 的 Yeunjoo Choi 谈 Chromium

这篇访谈介绍了浏览器开发者 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)来提高生产力,尤其是在理解陌生代码和追踪复杂代码路径方面。她认为社区正处于适应新技术的过渡期,并对此持乐观态度。