QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

2019 年 React Native 开源更新状态总结

  • 2019-07-16
  • 本文字数:2962 字

    阅读完需:约 10 分钟

2019年React Native开源更新状态总结

Facebook 工程师Christoph Nakazawa总结了前半年 React Native 的更新状态。


代码和社区状态在过去六个月里,React Native 上总共有 2800 个 commit,由 550 人提交,其中 400 来自社区,他们创建了1150多个Pull Requests,其中820个Pull Request已经被合入。


我们通过内核精简的方式,剥离了网站,CLI 和 React Native 之外的很多模块,不过过去六个月的日均 Pull Request 个数仍从三增加到六。现在平均未关闭 pull request 的数量在 25 以下,我们通常在几小时或几天内给出建议和意见。

重大的社区贡献

我们要特别强调最近的这些进展:


精简内核

精简内核(Lean Core)最开始是打算将一些模块从 React Native 剥离到单独的仓库,这样这些模块可以得到更好的维护。六个月中, WebViewNetInfoAsyncStoragewebsite 和CLI等仓库接收到 800 多个 Pull Request。除易于维护外,这些工程还可以独立进行发布,其发布频率比 React Native 更快。


我们也借此机会,从 React Native 删除了已经废弃的 polyfills 和遗留的组件。Polyfills 以前是必需的,用于支持语言功能,如在 JavaScriptCore (JSC)旧版本上的MapSet。现在 React Native 发布了新版本,这些 polyfills 都已经删除了。


这个工作仍在持续,还有更多需要从 native 和 JavaScript 分离出去或者删除掉的东西,不过有早期迹象表明,我们在努力改写 surface area 和 app 大小不断增加的趋势:以 JavaScript 包为例,一年前的 0.54 版本,React Native JavaScript 包的大小为 530kb,6 个月后,0.57 版本则涨到 607kb(增加了 77kb)。现在我们看到包的大小减少了 28kb,即 Master 上为 579kb,差值超过 100kb!


总结内核精简工作中的第一个迭代时,我们还需关注添加到 React Native 的新 API,持续评估让 React Native 能变得更小更快的方式,同时寻求方法来授权给社区,让他们成为不同组件的责任人。


用户反馈 6 个月前,我们问社区了一个问题,“你不喜欢React Native的那些方面?”,这样可以大体了解到人们遇到的问题。几个月前,我们回复了这些帖子,现在来总结下主要问题的进展:


  • 升级: React Native 社区主要围绕的是升级体验中的几个改进:autolinking,更好的升级命令rn-diff-purge,和升级帮助网站(很快可以获取)。针对每次主版本的发布,我们确保对重大的变更和新功能会发布信息进行沟通。这些改进会让 0.60 以下的版本在以后的升级中变得相当简单。

  • **支持/不确定性:很多人会感到有些灰心,**因为付诸在 Pull Requests 上的行为很少,而且 Facebook 对 React Native 的投入也存在不确定性。如上面所展示的,我们很有信心的说,我们已经准备好完成更多的 Pull Requests,我们急切期待着你的建议和贡献。

  • 性能: React Native 0.59 发布中有 JavaScriptCore (JSC)更快的新版本。另外,我们一直在努力,让 inline-requires缺省为使能,在接下来的几个月里,我们的更新会让人耳目一新。

  • 文档:我们最近开始致力于改写所有React Native文档。如果你愿意贡献一份力量,我们很高兴得到你的帮助。

  • Xcode 中的警告:我们清除了目前存在的警告,并尽力不再引入新的警告。

  • 热加载:React 团队构建了新的热加载系统,会很快集成到 React Native 中。


很遗憾,我们还没有做完所有的改进,现仍有下列问题:


  • 调试:我们修改了很多带来麻烦的缺陷和问题,这些是我们每天都会遇到的一些问题,但很遗憾,我们没有取得应有的进展。我们意识到 React Native 的 debugging 不够完美,这个问题会在以后优先进行优化。

  • Metro symlinks: 很遗憾,针对这个问题,我们还没有实现一个简便的解决方案。然而,React Native 用户共享的变通方法,也许对你有用。


考虑到在过去六个月已有大量的变更,我们要再问一次相同的问题。如果你正在使用 React Native 的最新版本,想给出相应的反馈,请在我们的“你不喜欢React Native的那些方面?”新版本下,留下评论。

持续集成

Facebook 先直接合入所有的 Requests 和内部变更到 Facebook 的 repros,然后再同步所有的 commit 回到 GitHub。Facebook 的架构和通常的持续集成服务不一样,不是所有的开源测试都在 Facebook 里做。这就意味着频繁的往 Github 上进行同步会打断开源测试,导致修复问题的时间很长。


React Native 团队中的Héctor Ramos花费了两个月的时间来改进 React Native 的持续集成系统,包括在 Facebook 和 GitHub 上。在 Facebook,变更提交到 React Native 前,会做大部分开源测试,这样会在 commit 做同步时,保证 Github 上的 CI 稳定性。

下一步计划

查找我们有关 React Native 未来发展的讨论。在接下来的几个月里,React Native 团队中的 Facebook 人员,会在Chain ReactReact Native EU做演讲。


英文原文: https://facebook.github.io/react-native/blog/2019/06/12/react-native-open-source-update


2019-07-16 18:013901

评论

发布
暂无评论
发现更多内容

一次错误的解码处理导致Netty堆外内存泄漏问题的分析

Java你猿哥

Java Netty ssm RSS 逻辑

Health Kit文档大变样,一起尝鲜!

HarmonyOS SDK

HMS Core

5月书讯 | 《这就是ChatGPT》来了!

图灵社区

数学 书单 书单推荐 GPT

Kafka集群是如何选择leader,你知道吗?

做梦都在改BUG

Java kafka 集群

Spring Boot实现第一次启动时自动初始化数据库

做梦都在改BUG

Java spring Spring Boot

GitHub上开源24小时获星96K的,从零到实战Java架构师成长手册

Java你猿哥

架构 架构师 高可用架构 高性能架构 高可扩展

深度理解:Redis Hash(散列表)实现原理

Java你猿哥

redis 开源 ssm hash 散列表

量子程序设计基础 | 从经典计算到量子计算

TiAmo

量子计算 经典计算

使用 Node.js、Socket.IO 和 GPT-4 构建 AI 聊天机器人

devpoint

node.js websocket GPT-4

解锁人机交互新技术 华为开发者联创日·全栈AI黑客松大赛等你来

说山水

Solaris Network:BSC上首个链上合成资产解决方案

鳄鱼视界

如何将千亿文件放进一个文件系统,EuroSys'23 CFS 论文背后的故事

百度Geek说

数据库 云计算 百度 企业号 5 月 PK 榜

从7天到1天,Kyligence 和亚马逊云科技助力欣和提高数据应用价值

Kyligence

数字化转型 指标平台

一块显存为 12GB 的 GPU 卡能够在CST 时域求解器仿真的最大网格数是多少?

思茂信息

cst cst使用教程 cst操作 cst电磁仿真 cst仿真软件

硬核!阿里2023版Spring全家桶进阶笔记流出,堪称Java跳槽神器

Java你猿哥

spring Spring Boot spring security Spring全家桶 Spring Cloud Aliababa

MatrixOne 助力开启分布式计算格局新征程

MatrixOrigin

分布式数据库 HTAP MatrixOrigin MatrixOne 矩阵起源

2023数博会丨软通智慧发布“一屏统揽”TongView 数字政府慧治平台解决方案

说山水

刚入职的后端开发问我SpringBoot如何跨域配置?我表示

Java你猿哥

Java Spring Boot ssm 跨域

创建矢量图形:Patternodes 3 免激活版

真大的脸盆

Mac Mac 软件 矢量图形创作 创建矢量图形

前端开发如何更好的避免样式冲突?级联层(CSS@layer)

vivo互联网技术

CSS 级联 @layer

阿里架构组分布式架构技术使用心得:全在这一份文档里面了

Java你猿哥

架构 分布式 ssm 分布式架构 安全架构

4 种 MySQL 同步 ES 方案,yyds!

Java你猿哥

Java MySQL sql elasticsearch Binlog

GitHub发布即百万!字节内网超实用 java性能优化手册,star超十万

Java你猿哥

Java ssm jvm调优 Java性能优化

如何科学地利用MTTR优化软件交付流程?

SEAL安全

DevOps MTTR 企业号 5 月 PK 榜

500行代码手写docker-实现硬件资源限制cgroups

蓝胖子的编程梦

容器 k8s ,docker Cgroups #k8s

大语言模型技术原理

NineData

AIGC ChatGPT AI大语言模型 大语言模型 技术原理

如何避免写重复代码:善用抽象和组合

阿里技术

Java 代码实战

华为云UniXcoder-VESO-v1问鼎CodeXGLUE榜单第一名

华为云PaaS服务小智

算法 代码 华为云 代码语义

引领下一代云计算技术的变革:无服务器架构

xfgg

云计算 severless

5月书讯 | 《这就是ChatGPT》来了!

图灵教育

数学 书单 GPT

kafka集群是如何选择leader,你知道吗?

JAVA旭阳

kafka

2019年React Native开源更新状态总结_编程语言_Christoph Nakazawa_InfoQ精选文章