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

news2024/11/22 15:53:32

本文首发自「慕课网」(imooc.com),想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"!

作者:FE大公爵|慕课网讲师 

前言

不知不觉,在大前端领域也混迹十年了,一路的经历不敢说「饱经风霜」,也是非常丰富了。还记得职业生涯的第一个项目是基于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、小程序、桌面端、穿戴设备,如果未来可以真正打通一套技术栈,那么底层基建、上层封装、业务解决方案都将可以共建、共享。

收尾

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


欢迎关注「慕课网」帐号,我们会一直坚持内容原创,提供IT圈优质内容,分享干货知识,大家一起共同成长吧!

本文原创发布于慕课网 ,转载请注明出处,谢谢合作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口自动化测试yaml+requests+allure技术,你学会了吗?

目录 前言 一、什么是接口自动化测试 二、为什么要进行接口自动化测试 三、接口自动化测试的流程 四、yaml语言介绍 五、requests库介绍 六、allure技术介绍 七、总结 前言 接口自动化测试是在软件开发过程中常用的一种测试方式,通过对接口进行自动化测试&a…

SQL Sever 单表数据查询(下)

提示:本篇文章是在上篇文章的基础上进行单表数据查询操作的补充,主要以例题的方式呈现. 文章目录前言1.分组:统计各门课程的选修人数2.分别统计男女生的平均年龄3.查询所有科目成绩在85分以上的学生的学号及其平均分4.查询平均年龄大于18岁的系部和平均年…

Linux复习 / 动静态库QA梳理 | 如何使用第三方库?

文章目录前言Q&A概念Q:使用静态库和使用动态库的程序有什么区别?Q:什么是静态链接/动态链接?使用与制作Q:如何制作动静态库?Q:如何使用第三方库?Q:程序加载时&#x…

C语言-实现顺序二叉树和平衡二叉树AVL

1. 结构体 在实现二叉树之前先看下结构体的一些使用方法 数组是保存一系列相同的数据。在实际问题中,一组数据往往有很多种不同的数据类型。例如,登记学生的信息,可能需要用到 char型的姓名,int型或 char型的学号,in…

4.6--计算机网络之TCP篇之TCP的基本认识--(复习+深入)---好好沉淀,加油呀

1.TCP 头格式有哪些? 序列号: 在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。 用来解决网络包乱序问题。 确认应答号: …

MySQL优化——Explain分析执行计划详解

文章目录前言一. 查看SQL执行频率二. 定位低效率执行SQL三. explain分析执行计划3.1 id3.2 select_type3.3 table3.4 type3.5 key3.6 rows3.7 extra四. show profile分析SQL前言 在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能…

酷炫的3D智慧工厂不会打造?这40+可视化大屏模板千万别错过!

数字化已成为各行各业的重要趋势,因为数字化能够带来精准的效益提升。小米公司最近推进了黑灯工厂业务。”24小时熄灯操作,全程无人工干预”,这是小米智能工厂的重要特征。走进工厂,闪烁的灯带提示生产正在进行,机器通…

【Spring从成神到升仙系列 四】从源码分析 Spring 事务的来龙去脉

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…

【ChatGPT】Prompt Engineering入门

Prompt Engineering入门一、什么是 Prompt Engineering?二、我们还需要学习 PE 吗?三、Prompt基础原则一、什么是 Prompt Engineering? 简单的理解它是给 AI 模型的指令。它可以是一个问题、一段文字描述,甚至可以是带有一堆参数的…

数据结构 - 排序 | C (插入、希尔、选择、堆、冒泡)

目录0.排序思维导图(总)一、插入排序1.直接插入排序思路分析代码实现时间复杂度2.希尔排序思路分析代码实现时间复杂度二、选择排序1.选择排序思路分析代码实现时间复杂度2.堆排序思路分析代码实现时间复杂度三、交换排序冒泡排序思路分析代码实现时间复…

如何基于vue实现倒计时效果

如何基于vue实现倒计时效果基于vue2 element实现画面效果代码基于vue2 element 实现画面效果 代码 <template><div><div class"Box"><div style"position: relative;"><el-progress type"circle" :width"30…

pytorch注意力机制

pytorch注意力机制 最近看了一篇大佬的注意力机制的文章然后自己花了一上午的时间把按照大佬的图把大佬提到的注意力机制都复现了一遍&#xff0c;大佬有一些写的复杂的网络我按照自己的理解写了几个简单的版本接下来就放出我写的代码。顺便从大佬手里盗走一些图片&#xff0c…

Vue3使用触摸滑动插件(Swiper)

Vue2使用触摸滑动插件&#xff08;Swiper&#xff09; 参考文档&#xff1a; Swiper官方 Swiper Vue Swiper Demos 本文使用的是最新版本&#xff1a;Swiper9.2.2 安装插件&#xff1a;yarn add swiper 本文基于Swiper插件进行封装&#xff0c;主要实现两种形式的轮播图展示…

电脑自带远程桌面和远程控制软件哪个好?

随着科技的不断发展和普及&#xff0c;越来越多的公司和个人开始关注远程控制软件的使用。我们常常需要在不同的地方工作&#xff0c;但工作需要的文件和软件却只能在一个地方使用&#xff0c;这时候远程控制电脑软件就变得尤为重要咯。但是&#xff0c;许多人分不清楚&#xf…

Windows远程连接工具有哪些

Windows远程连接工具&#xff0c;一般称为远程桌面软件&#xff0c;更准确的叫远程访问软件或远程控制软件&#xff0c;可以让你从一台电脑远程控制另一台电脑。远程桌面软件允许您控制连接的计算机&#xff0c;就好像它就在您面前一样。 远程桌面工具可用于技术支持、远程工作…

单TYPE-C口 可支持快充又可传输USB2.0数据方案

虽然现在有不少厂商也采用了Type-C接口&#xff0c;但是只作为一个充电接口&#xff0c;对于跨时代的type-c接口来说&#xff0c;多少有点大材小用&#xff0c; 那么有没有办法&#xff0c;让一个type-c接口既可以充电&#xff0c;又可以接OTG&#xff1f;比如不充电的时候可以…

Python一行命令搭建HTTP服务器并外网访问 - 内网穿透

文章目录1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5.结语转载自远程内网穿透的文章&#xff1a;【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」 1…

第二章:HTML CSS 网页开发基础(二)

CSS概述 CSS全称&#xff1a;Cascading Style Sheet&#xff0c;可以对文字进行重叠&#xff0c;定位。主要实现页面美化。 一、CSS规则 CSS样式表中包括了3部分&#xff1a;选择符、属性、属性值 选择符{属性:属性值;} 选择符&#xff1a;也可以称为选择器&#xff0c;所有…

Java实现输入行数打印取缔字符,打印金字塔三角形的两个代码程序

目录 前言 一、实现输入行数&#xff0c;打印取缔字符 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图 二、打印金字塔三角形 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图​​​​​​​ 前言 1.因多重原因&#xff0c;本博文有…

【BlazePose】《BlazePose: On-device Real-time Body Pose tracking》

arXiv-2020 文章目录1 Background and Motivation2 Advantages / Contributions3 Method4 Experiments5 Conclusion&#xff08;own&#xff09;1 Background and Motivation 人体关键点存在的难点&#xff1a;a wide variety of poses, numerous degrees of freedom, and occ…