继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

大前端突围之路:从RN跨平台到大前端全栈统一

2023-02-23 10:59:284391浏览

FE大公爵

1实战 · 2手记 · 2推荐
TA的实战

前言

不知不觉,在大前端领域也混迹十年了,一路的经历不敢说「饱经风霜」,也是非常丰富了😀。还记得职业生涯的第一个项目是基于Android2.2的应用开发,那时候虽然手机性能低劣,开发方式原始,但是看着第一个项目打造成型,心里还是充满了喜悦和成就感。

大概是在2015年、16年时期,移动开发技术进入了井喷时期,几乎每天都能在论坛看到「新世界」,那时候才发现自己会的越多就,不会的就更多。时至今日回头看,一路的感想和思绪很多,个人之见,抛砖引玉,摘几个话题和大家分享分享。

背景

大前端当下内卷愈演愈烈,各种技术风起云涌,无数小伙伴感慨「别学了,跟不上了!」。在我们身边也经常会看到各种焦虑,不管是做移动端开发的,还是做前端开发的,都在卷与被卷的过程中,而这中卷似乎进入到一种畸形的状态,就是比谁会的技术多。在招聘中经常会看到在简历专业技能一栏写满一排,从安卓到IOS,从前端到后段。但是真的问起来,都是浅尝辄止。

  • 所以我们不禁要问:真的需要一个人会那么多技术吗?😱

答案是否定的,但是又不能这么简单的回答这个问题,因为我们要结合这个时代的背景来看。

打工者卷,本质上是企业卷,移动互联网进入高峰期,互联网企业的生存竞争愈发激烈,圈内经常说互联网创业公司18个月决定生死,企业在这么快节奏的竞争中必须要提高效率,适应变化。而研发技术作为互联网企业的核心自然首当其冲。所以研发技术就被迫要求提高效率,适应变化

带着这个结论再来看大前端技术演变就不难看出,这些年整体的趋势就是两个关键词:
统一、融合。融合是为了统一,统一是为了提效,这其中最值得讲的就是跨平台技术。

谈谈跨平台

所谓跨平台,简单的理解就是用一套代码开发出可以运行在多个平台之上的应用程序,以移动端为例,RN和Flutter只需要开发一套代码,就可以编译出两个安装包,分别运行在安卓和IOS两个系统上,相当于本来需要两个开发团队,现在只需要1个(并不完全是)。另外的方案还有微信小程序,它走了另外一条不同的路线,寄生于超级应用内的运行环境,只开发一个应用包,通过超级应用实现跨平台。另外还有国内快应用,虽然不支持IOS,但是本质上也是跨越平台的统一方案。

跨平台技术的应用使得移动端研发效率得到极大的提升,虽然没有真正达到效率翻倍,但至少是50%以上的提升。并且一套代码相比于两套代码,也大大降低了业务快速变化之下的维护成本。

在「跨平台」这个概念之上,还有另一个更大的概念:大前端全栈。

大前端全栈

统一、融合」之路不局限于安卓IOS两个移动平台,而是想推广到整个大前端:安卓、IOS、小程序、web、PC桌面、穿戴设备。

如果能把所有的这些端全部统一开发技术和开发语言,那曾经每个端都需要一个单独的开发团队就有可能合并成一个整体团队,这是非常理想化的情况。当下我们非常清楚还远远没有达到这个程度,但是我们可以朝着这个趋势演进,如果有一天真的实现大前端全栈统一,那这个行业的效率将极大的提升。

RN的优势

回到移动端,在众多移动端跨平台技术之中,为什么说首推RN呢?RN到底有何独到之处。从今天的主题出发,分两个方面讲:

1、开发效率

一方面因为其快速高效的开发模式,迎合了现在互联网公司追求短平快、高人效的需求。React的JSX语法比Flutter要简洁高效很多,而且JS语言也笔Dart要更加灵活,适用面更广,使用人群更广。React函数式编程得到普及后,模板代码更少,代码复用更加容易,RN的开发效率得到了更近一步的提升。

2、统一之路

另一方面是因为RN更有利于大前端全栈统一理想的落地。JS在ES6之后已经非常成熟,相比Flutter的Dart语言应用更广,学习更快,群众基础更广。另外RN基于React,其在语法、开发范式上几乎一样,除了Dom元素不同,Context、HOC、memo等技巧的应用一模一样,甚至工具类、状态管理都可以共用。所以RN工程师可以非常低成本的转向React开发。另外Taro小程序框架已经非常成熟,使用React开发小程序也几乎没有门槛。再说桌面端,Electron-React已经有了非常成功的大厂级应用,这对于其他想选择Electron的人来说就有了信心。相对冷门的穿戴设备开发,RN也已经有了非常成功的尝试和突破。

所以,基于React的大前端统一技术栈已经看到了希望,移动端、web、小程序、桌面端、穿戴设备,如果未来可以真正打通一套技术栈,那么底层基建、上层封装、业务解决方案都将可以共建、共享。

收尾

技术的发展应该是让人更加轻松而不是更加累,软件开发技术也一样,推动大前端技术栈统一可以去内卷化。对企业而言,多种技术栈意味着维护多套基建,招聘多套「人才」,对于个人而言,学得越杂就越难精深,统一技术栈才能在有限的精力下创造更多的价值。

打开App,阅读手记
12人推荐
发表评论
随时随地看视频慕课网APP

热门评论

对于之前从事移动端开发的同学而言,借助RN转向前端技术栈是最快捷的途径。

你好  我想问一下 小红书头部tab切换是滑动切换的吗?还是点击切换的

查看全部评论