返回开发者新闻

开发者访谈:Meta React 专题特辑 (Vitalii Topoliuk)

2023年6月28日发布者:Suraj Subramanian

本文是与 Meta 软件工程师 Vitalii Topoliuk 和 Meta 开发者外协推广人员 Sean Keegan 合作撰写而成。

在今天的采访中,我们请来了 Meta Messenger 桌面版应用团队的软件工程师 Vitalii Topoliuk。Vitalii 的团队负责研发 Messenger 桌面版,让用户可以直接使用电脑发送消息、拨打电话和保持联系。

请介绍一下您自己。

我叫 Vitalii Topoliuk,是 Messenger 桌面版应用团队的软件工程师。过去 3 年来,我们一直在开发 Windows 和 macOS 版的 Messenger 应用;而近 2 年我们都在使用 React Native。

React 对 Messenger 桌面版有什么作用?

Messenger 桌面版由 React Native 框架提供技术支持。

您在 Meta 使用 React 开发过哪些项目?

Messenger 桌面版和衍生项目:Work Chat 桌面版、Workrooms 桌面版。

您的团队为什么选择使用 React?使用 React 对您和您的团队实现开发目标有何帮助?

Messenger 桌面版以 Electron 框架作为构建基础,而且起步还算不错。但很可惜,我们很快便发现 Electron 的功能有限;为满足性能、可靠性和效率 (PRE) 这三方面的要求,我们必须投入大量资源。此外,Electron 也限制了我们应用的功能。

最近有什么让您感到兴奋或无比自豪的事?

改用 React Native 后,我们解决了几个 PRE 问题并显著优化了开发者的体验。React Native 使我们能够重复利用 80% 的代码库,并优化了大量 PRE 指标。之前使用 Electron 开发应用的时候,我们也很注重优化 PRE 指标;在转用 React Native 开发应用的 3 个月时间内,我们没有在 PRE 方面投入任何额外资源,但反而实现多项项优化,其中包括以下几项:

Windows 版应用:

崩溃发生率:-60%

冷启动成功率:97%(使用 Electron 的冷启动成功率是 88%)

P90 冷启动延迟:-50%

二进制文件大小:-80%

MacOS 版应用:

崩溃发生率:+59%

冷启动成功率:99%(使用 Electron 的冷启动成功率是 95%)

P90 冷启动延迟:-60%

二进制文件大小:-70%

在 Meta 这样的公司里担任 React 开发者,有什么特别令人兴奋的事情吗?

当然有。在 Meta,我们有机会向社群展示 React Native 可以用来构建跨平台的应用程序桌面版。

您对 React 的未来有何期待?

我希望 React Native 日后能够取代 Electron。但是要实现这一点,我们应该要优化框架,加入更多端对端的生产工具。例如,Electron 不仅是适用于网页型应用的框架,同时还包含用于创建安装程序、自动更新程序以及崩溃报告等内容的工具。


十分感谢 Vitalii 抽时间接受这次采访。通过这次精彩的采访,我们了解了目前如何使用 React 改进主要的应用程序,以及我们如何从在 Meta 构建的产品中吸取经验教训,并将这些经验教训回馈给 React 社群。希望这次采访对大家有所帮助,并且能够帮助大家了解 Meta 目前如何使用 React,以及在哪些方面使用。请关注更多采访博客,我们会邀请 Meta 工程师来分享他们对这个话题的看法。

关于“开发者访谈:Meta React”系列

React 是最受欢迎的开源项目之一,在过去几年里一直被评为“最受欢迎”的网页框架之一。Meta 相信 React 是一个出色的资源库,可以帮助开发者轻松地大规模构建用户界面。从简单的网站到企业应用程序领域,全世界数百万开发者都在使用 React。React 是一个开源资源库,适合所有人使用。

本博客是我们“开发者访谈”系列的一部分。在这个系列中,我们邀请经常使用 React 的 Meta 工程师分享他们的体验,向我们讲述他们目前正在构建的出色产品。请关注更多的采访博客,届时我们会邀请其他工程师参加采访,倾听他们对这个话题的看法。

如需了解有关 Meta Open Source 的更多信息,请访问我们的 Open Source 网站、订阅我们的 YouTube 频道,或在 TwitterFacebookLinkedIn 上关注我们。