35|自动化:升级0.72新架构的步骤和关键
蒋宏伟、常健洪
你好,我是蒋宏伟,今天我们来聊聊架构升级。
今年 2 月,超过 2000 人的调查报告——《State of React Native 2022》指出:有 6.3% 的开发者认为,React Native 版本升级是他们的痛点,位列所有问题之首。
是的,升级确实很痛。
正如上一讲中提到的,升级能够获得客观的性能收益,但成本太高了。当成本抵消收益时,理性的选择是放弃升级,即使无法享受性能收益,无法拥抱最新的生态,还可能会留下技术负担。
React Native 升级涉及许多方面,这些都是成本,包括 iOS、Android、JavaScript 三种语言的升级,多个团队的协同,所有项目的回归测试,以及因升级而放弃的业务研发的机会成本。只有在时机合适且收益能够覆盖业务的机会成本时,升级才是我们需要考虑的事项。
然而,一旦你确定要升级后,必须做好两方面的工作:一方面是规划好升级方案,减少升级对业务节奏的影响;另一方面是善用升级工具,加速项目升级。
那么这节课,我就来介绍下我对升级的整体思考。然后,我会重点介绍一个好用的升级工具——JSCodeshift,它可以帮助你自动批量升级项目。
升级方案
大概有以下 3 种升级方案:
Expo 升级方案
React Native Upgrade
将业务代码复制新版本上
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了如何升级React Native项目至0.72新架构的全过程,包括升级的痛点和成本、升级时机选择、三种升级方案、以及作者在升级过程中遇到的问题和解决方法。作者还分享了如何开启新架构,并提出了自动化升级的思路,借助Node.js对配置实现自动升级,借助JSCodeshift对JavaScript代码实现自动化升级。文章最后总结了自动化升级的方案,通过伪代码展示了如何借助Node.js实现自动升级配置。整体而言,本文以实际案例为基础,深入浅出地介绍了React Native项目升级至0.72新架构的全过程,为读者提供了宝贵的经验和技术指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《React Native 新架构实战课》,新⼈⾸单¥59
《React Native 新架构实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 听说昵称太长了躲在树后面会被别...我是先拉一个 git 分支出来自动升级,升级失败了可以通过自己本地 git 比较看哪些改动,自动升级失败就放弃这个分支另外拉一个分支,然后用 rn 最新版创建一个空项目,把老项目中代码慢慢复制过来,但是如果老项目原生代码写了很多,还要迁移原生代码也很麻烦,后来我把项目改成了原生为主体,拿出 activity 承载 rn,开始把 rn 端依赖的第三方原生库尽量干掉,把第三方库的原生代码抄写到自己的原生工程,rn 只剩下纯 js 的外部依赖会少很多升级问题,并且第三方依赖约少升级坑越少。最后,我觉得 rn 还是只能作为原生的一个补充,去实现一些简单功能,以及作为新需求的敏捷迭代,稳定下来之后如果遇到性能瓶颈果断用原生改写,有的场景例如视频处理 Android 在原生端还要使用 Java 的原生开发(ndk) ,rn 完全不够看,比如 rn 在安卓上调转动画的持续时间得改框架依赖的原生代码,最后还是回到原生,所以 rn 遇到刺手问题时别想着去优化 rn 性能,优化来优化去最后一地鸡毛。rn 在安卓上就起了一个 activity 而已,对于大项型目不可能就一个 activity 搞定,搞到后面都是多模块多人协作,站在一般原生开发者视角,一个 activity 做出来大型项目就是一个大号 demo,不然业务规模扩大人员扩充后再往 rn 身上甩甩锅,大概率要用原生重构2023-07-07归属地:福建4
- 陈彦祖依赖包本地缓存这种问题真是新手梦魇。没有多少经验遇到这种问题真的难顶。2023-07-11归属地:中国香港1
收起评论