写点什么

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:013850

评论

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

Java注解编译期处理AbstractProcessor详解

石臻臻的杂货铺

Java

挑战 30 天学完 Python:Day14 高阶函数

MegaQi

挑战30天学完Python 三周年连更

手撕代码系列(三)

Immerse

JavaScript 前端面试题 手撕代码 ES6-ES12 面试必考

Matlab实现最优化

Shine

三周年连更

Bash 脚本中,特殊变量$0到底是什么?

wljslmz

bash Linux 三周年连更

轻松处理pdf文件:Acrobat Pro DC 2023 中文激活版

真大的脸盆

Mac Mac 软件 PDF编辑 pdf编辑工具

音视频八股文(8)-- h264 AnnexB

福大大架构师每日一题

音视频 ffmpeg 流媒体

读书笔记:如何成为某个领域的前1%

老张

读书笔记 方法 写作技巧

Matlab实现机器学习

袁袁袁袁满

三周年连更

城市的智能进化,汇成数字中国的璀璨银河

脑极体

智慧城市

大模型“涌现”的思维链,究竟是一种什么能力?

脑极体

人工智能

极速上手使用Docker,这篇文章就够了!

浅羽技术

Java Docker centos 容器化 三周年连更

CDH安装与部署

乌龟哥哥

三周年连更

LoRA: 大语言模型个性化的最佳实践

Zilliz

Towhee 大语言模型

深入探讨Go语言中Semaphore信号量的机制原理

Jack

通过华为云ECS云服务器搭建安防视频监控平台

DS小龙哥

三周年连更

高效理解机器学习

俞凡

机器学习 算法

什么是对象存储?对象存储的原理是什么?有哪些开源的、非开源的对象存储服务?

Java架构历程

对象存储 三周年连更

Go 方法接收器:选择值接收器还是指针接收器?

陈明勇

Go golang 方法 三周年连更 方法接收器

2023阿里云合作伙伴大会-主论坛回顾

科技pai

阿里云 伙伴大会 2023阿里云合作伙伴大会

《底层逻辑2:理解商业世界的本质》

石云升

读书笔记 三周年连更

切片的其他妙用

宇宙之一粟

Go 切片 三周年连更

挑战 30 天学完 Python:Day15 错误类型

MegaQi

挑战30天学完Python 三周年连更

火山引擎云原生数据仓库ByteHouse技术白皮书V1.0 (Ⅵ)

字节跳动数据平台

大数据 数据仓库 云原生 元数据 企业号 4 月 PK 榜

《流畅的Python》第二版上市了,值得入手么?

Python猫

Python

如何评价 ChatGPT 回答策略的 ensure only ethical usage 特质

汪子熙

ChatGPT ChatGPT4 三周年连更

Qz学算法-数据结构篇(二分查找、删除)

浅辄

三周年连更

算法题每日一练:螺旋矩阵 I

知心宝贝

数据结构 算法 前端 后端 三周年连更

我们如何将 Amazon Snowcone 送入轨道

亚马逊云科技 (Amazon Web Services)

Windows下 IDE工具常见编译错误FAQ

鸿蒙之旅

OpenHarmony 三周年连更

2023-04-28:将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z 字形排列 比如输入字符串为 “PAYPALISHIRING“ 行数为 3 时,排列如下 P

福大大架构师每日一题

Go 算法 rust 福大大

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