2024年,前端开发者,不妨看看鸿蒙开发

从大环境也好,行业发展也好,过去10年的前端技术晋级路径已经彻底失效。我在去年看了一眼考公的职位,没有任何一个岗位可以由前端胜任,而如果在后端领域比较资深的话,进可以做技术咨询,退可以考架构公务编。在过去这些年里,我不能说投资前端是一场失败,但在当下这个时间节点上,不能说是成功。因此,我们应该想一想,我们如何将这10来年积累的技术和经验,赋予一个新的意义。

另一方面,当下的前端开发本身也存在问题。从整个行业来看,随着互联网2.0时代落幕,工业互联网的黯然神伤,真正对技术深度需求比较大的非常少,例如figma、剪映、飞书、腾讯文档、qq秀等等这类需要具备非常小众的深度的资深技术的岗位很少,而绝大多的前端开发者拉平来看,除了经验不同,技术差别并不大。于此同时,低代码正在取代前端开发者,很多系统不在需要前端开发者,后端的人拖拉拽就可以生成一个界面给到用户去用,虽说没有什么设计感,但是能实现目的。再者,AIGC正在颠覆前端开发的方式,在figma上面,可以搜索出一大堆设计稿直接输出为vue、react、微信小程序的插件,以前我们需要花很多力气才能开发好上线的,现在只需要有一个前端跟着设计师把导出的代码再整理整理就可以发布。虽然前端领域还在有新技术出现,web标准和新接口还在出,但从国内前端的发展来看,似乎已经到了百足之虫,死而不僵的局面,除非有大的风口,否则很难再出现整个互联网行业狂欢的局面。

今天我在刷公众号时,发现国内掀起了一波转鸿蒙系统的高潮,各类一线厂商都开始准备为鸿蒙生态构建自己的应用。这是一个非常有意思的信号。虽然这里面有很多值得质疑的地方,但是不得不说,在这种信号面前,不同的人,听出不同的声音。

前段时间,小米发布了自己在做澎湃系统,当时很多人和鸿蒙做对比,认为鸿蒙与安卓割席绝交,不再支持安卓应用,是割裂生态,让开发者再次回到了必须为不同系统定制应用的时代。虽然我也有90%认同这一观点,对华为很多行为有些鄙视,对其对待员工的方式也颇有异议。但是从宏观层面,作为独立生态的鸿蒙正在不断成长,而且速度很快,健全度很好,可以预见未来一定可以在消费类科技软硬件生态中占有非常重要的地位。除了电脑、手机、手表等终端,华为还拥有智能家居、电视、甚至汽车等消费品终端,而且鸿蒙系统具有嵌入式的能力,在其他工业、机器人、电信通信等领域,也可以开放给开发者来做大它的生态。可以说,在生态的完整度上,华为比小米还要厉害,而且华为的产品远销发达国家,单品价格还高,可见其商业能力也远超小米,如果这种商业收益能够在将来反哺给开发者,相信开发者也能从中受益。如果这样来看,华为的消费品领域,真的在对标苹果,作为中国的民族企业,没有上市的情况下,能够做出如此成绩,确实非常令人敬佩。

我在了解了鸿蒙应用开发之后,发现,如果我们前端开发者拥有这10年来的经验,要切换到鸿蒙生态中真的是非常容易。理由有如下几点:

完善的开发体系和文档

和一些装装样子的国内系统不同,鸿蒙的开发体系真的很完善,从IDE到调试工具,文档也很全,还有视频教程。对于前端开发者而言,只要自己从头开始在自己的电脑上搭建过开发环境,都能按照鸿蒙文档搭建起自己的鸿蒙开发环境。而且作为后起之秀,鸿蒙团队也考虑到了开发者水平,没有整非常多高大上的名词和概念,开发文档中的很多概念都是现有行业中见过的,只要你曾经在安卓、前端、后端等社区里面听说过,都能快速理解它的概念。

承TS/JS的开发语言

鸿蒙提供了ArkTS开发语言,虽然它早期甚至直接抄前端开发的html+css+js的开发模式,但是可能考虑到性能等方面的原因,现在已经把重点放在了ArkTS。ArkTS就是在Typescript的基础上,再扩充了一些语法,不多,也不难,但凡用过vue或react写过应用的,都可以上手,因为它们的底层都是js。这可以说是为前端转行鸿蒙应用开发扫清了障碍,似乎华为很早就知道2024年前端行业惨状,提前布局拯救无数失足青年一样。

ArkUI视图框架

在原理和写法上非常类似谷歌的flutter,在地位和效果上非常类似苹果的swiftUI。使用ArkUI来开发鸿蒙应用,不仅不需要自己再引入一套类似antdesign一样的UI库,而且声明式的写法很简单,甚至它是跨平台的,在电脑和手机、手表之间可以无缝切换。作为框架,它还通过编程范式,让UI和逻辑分离,有点类似小程序的架构,从而保证了性能。一旦上手,可以说比用vue、react生态来开发应用还要简单,而且还可以在一种具有规范化的代码组织体系下写代码,心情也更愉悦。

ArkUI X跨平台同构框架

既然和flutter很像,那么基于和flutter一样的道理,我们甚至可以用ArkUI来写web应用,甚至转化为小程序,实现一码多端。

响应式编程

熟悉vue的同学,都对这个词不陌生。没错,立足于TS的ArkUI,竟然和早期的Vue Class 组件的设计思路几乎一样,遵循响应式编程,通过直接修改struct上的属性的值来触发UI的更新。这让我们在写鸿蒙应用的时候,又倍感亲切了一些。

原生应用

不过别忘了,我们在用ArkUI写程序时,是真的在写原生应用。在过去几年里,前端一直希望能过侵入到原生应用开发,不过最终都走了一些弯路,例如react native,仅仅是写UI层,要调系统底层还是得用原生系统支持的语言来开发模块后链接到项目中,例如electron虽然可以开发桌面应用程序,但是性能又令人堪忧。flutter完全抛弃了js生态,启用dart作为开发语言。而基于ArkUI写的应用,就像用swiftUI写的Mac应用一样,不仅丝滑,而且可以调用系统组件,例如系统气泡、小挂件、通知窗口等等。

而在微观代码层面,你时不时就会冒出“这不就是flutter”“这不就是vue”“这不就是react native”“这不就是微信小程序”“这不就是安卓”等等这一类的想法,可以说,作为新生代的生态缔造者,鸿蒙团队在拿捏开发者心态时,也是做到了游刃有余。

字节码

ArkTS经过编译器之后,形成方舟字节码,实际分发的程序都是以字节码的形态运行,比前端领域的代码分发安全得多。当然,它之所以要用字节码,很有可能是因为它需要在不同设备(不同CPU架构)上跑,因此,底层还是基于类似JVM的虚拟机来跑更好。

天时地利

当前这个时间点,鸿蒙正处于蓄势待发的阶段,你说鸿蒙这个项目会黄,在两年前可能有人会信,但是现在,有谁会信?随着各大厂商的入驻,慢慢的整个软件生态就会起来,最核心的一点是,华为的商业能力,能让生态中的合作伙伴赚到钱,那么,这个生态就会持续下去。而对于我们开发者个人而言,在生态早期入局,不一定大富大贵,但在2024年前端行业普遍扑街的时间节点上,或许能给我们带来一些不一样的结果。

最后,我还是想要重复我的观点:虽然前端的技术本身还在发展,但是国内的前端就业已经“攻守之势异也”,而在这个时间节点上,鸿蒙早就用ArkTS这一诚意满满的语言向前端开发者敞开了大门,我们不妨放下偏见看一看,说不定又是另外一番景象。

转行鸿蒙需要学习些啥?该怎么学?

**首先得是开发语言 ArkTS,这个尤为重要,然后就是ArkUI声明式UI开发、Stage模型、网络/数据库管理、分布式应用开发、进程间通信与线程间通信技术、OpenHarmony多媒体技术……等。**像中间还有许多的知识点,这边都以梳理成思维导图的形式了,并分成了八大专类

路线图适合人群

  • IT开发人员:想要拓展职业边界,享受新技术溢价红利;
  • 零基础小白:鸿蒙爱好者,希望从0到1学习,增加一项技能。

为了能让大家更好的学习鸿蒙 (OpenHarmony) 开发技术,这边特意整理了《鸿蒙 (OpenHarmony)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙 (OpenHarmony)开发学习手册》:https://qr21.cn/FV7h05

入门必看:https://qr21.cn/FV7h05
1.  应用开发导读(ArkTS)
2.  ……

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门:https://qr21.cn/FV7h05
1.  基本概念
2.  构建第一个ArkTS应用
3.  构建第一个JS应用
4.  ……

开发基础知识:https://qr21.cn/FV7h05
1.  应用基础知识
2.  配置文件
3.  应用数据管理
4.  应用安全管理
5.  应用隐私保护
6.  三方应用调用管控机制
7.  资源分类与访问
8.  学习ArkTS语言
9.  ……

基于ArkTS 开发:https://qr21.cn/FV7h05
1.  Ability开发
2.  UI开发
3.  公共事件与通知
4.  窗口管理
5.  媒体
6.  安全
7.  网络与链接
8.  电话服务
9.  数据管理
10.  后台任务(Background Task)管理
11.  设备管理
12.  设备使用信息统计
13.  DFX
14.  国际化开发
15.  折叠屏系列
16.  ……

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

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

相关文章

【基于 InternLM 和 LangChain 搭建你的知识库】学习笔记

学习参考文档【基于 InternLM 和 LangChain 搭建你的知识库】 学习参考链接【书生・浦语大模型实战营第三课作业(基础进阶)】 理论 实战 收集原始数据 收集2018年-2020年几年间的优秀数学建模论文 修改脚本文件,测试文件 作业 复现课程知识库助手搭建过程 La…

PDF文件的创建时间可以修改吗?分享你一个简单的小技巧

PDF文件的创建时间能修改吗? PDF文件的创建时间是指该文件首次被创建或生成的日期和时间。这个时间被存储在PDF文件的元数据中,可以通过某些软件查看和修改。 在某些情况下,我们需要将PDF文件的创建时间修改为特定的日期和时间。例如&#…

如何使用Java采集汽车之家车辆配置参数信息

目录 一、引言 二、采集工具选择 三、采集流程设计 1、确定采集目标 2、确定采集URL 3、发送HTTP请求 4、解析HTML页面 5、CSS选择器或jQuery选择器。 6、异常处理和日志记录 四、代码实现示例 五、结果与分析 六、结论 随着互联网的普及和信息技术的不断发展&…

人人都在用的PDF软件,也要接入ChatGPT了

随着人工智能技术的不断进步和发展,Chatbot技术的应用已经逐渐从娱乐和社交领域扩展到了更多的实际场景中。在办公软件领域,聊天机器人已经成为了提升工作效率、减少人力投入的重要工具,多家头部企业都在探讨将AI接入到软件及应用中的使用方案…

ctfshow元旦水友赛 misc 以假换真wp

记录一下根据官方wp的复现过程 目录 1.解压2.得到新的压缩包3.明文攻击4.上传baidu.jpg至百度网盘得到flag 1.解压 1)下载题目,得到一个名为6.zip的文件 2)尝试直接用360解压,发现需要密码 3)那就常规思路用010打…

便携式VCI汽车售后诊断仪的优点

汽车诊断工具的优点主要包括以下几个方面: 故障检测智能化:汽车诊断I具通过与车辆的紧密连接,能够实时获取车辆的数据流Q参数和诊断信息,实现故障检测的智能化和精确化。快速诊断:汽车诊断I具能够在短时间内完成对车辆的全面检测,提供准确的故障诊断Q结果,帮助维修…

后端杂七杂八系列篇三

后端杂七杂八系列篇三 ① Spring Event用法① 同步代码的用法① 自定义事件② 定义监听器③ 定义发布者④ 发布消息后,接口收到消息 ② 异步代码的用法① 开启异步② 自定义事件③ 自定义监听器(推荐使用 EventListener 注解),使用Async注解④ 定义发布者…

存储卷(数据卷)—主要是nfs方式挂载

1、定义 容器内的目录和宿主机的目录进行挂载 容器在系统上的生命周期是短暂的,一旦容器被删除,数据会丢失。k8s基于控制器创建的pod,delete相当于重启,容器的状态会恢复到原始状态。一旦回到原始状态,后天编辑的文件…

写一个判断鼠标进入方向切换图片的效果

直接看代码&#xff1a; <template><div class"mainrouter centerWindi"><div ref"mouse" class"mouse" mouseenter"handleMouse"></div></div> </template> <script setup> import { onMo…

erlang/OTP 平台(学习笔记)(四)

Erlang语言精要 Erlang shell 相较于日常惯用的系统&#xff0c;Erlang系统是一套更富交互性的环境。使用大部分编程语言时&#xff0c;要么把程序编译成OS可执行文件后运行&#xff0c;要么用解释器来执行一堆脚本文件或编译后的字节码文件。无论哪种情况&#xff0c;都是让…

LeetCode:82. 删除排序链表中的重复元素 II(C++、Java)

目录 82. 删除排序链表中的重复元素 II 题目描述&#xff1a; 实现代码与解析&#xff1a; 链表遍历&#xff1a; 实现代码与解析&#xff1a; 82. 删除排序链表中的重复元素 II 题目描述&#xff1a; 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复…

美颜技术对比:如何根据项目选择不同的美颜SDK?

各位开发者应该非常清楚&#xff0c;为了在项目中取得最佳效果&#xff0c;选择合适的美颜SDK至关重要。本篇文章&#xff0c;笔者将通过对比不同美颜SDK的关键特性&#xff0c;帮助开发者根据项目需求做出明智的选择。 一、技术原理对比 不同的美颜SDK可能采用不同的技术原理…

汽车线束的汽配企业MES管理系统解决方案

随着科技的飞速发展和环保需求的日益提升&#xff0c;新能源汽车在全球范围内崭露头角&#xff0c;成为未来出行的主导力量。在这股浪潮中&#xff0c;中国凭借其强大的研发实力和市场敏锐度&#xff0c;迅速崛起为新能源汽车领域的佼佼者。而作为汽车数字化控制与智能化应用的…

Unity中URP下的SimpleLit顶点着色器

文章目录 前言顶点着色器1、GPU Instance 相关2、顶点输入数据相关3、雾效混合因子4、对 uv 进行 Tilling 和 Offset 的应用 及 把顶点的坐标信息传给输出结构体5、把法线相关的结果&#xff0c;传给输出结构体6、光照贴图相关7、额外灯相关计算8、阴影相关 前言 在上一篇文章…

elementui-树形控件实现子节点右侧添加图标和数据,鼠标放上去显示文字

1、代码 <el-treev-loading"nameLoding":data"data"node-key"id":highlight-current"true"empty-text"暂无数据":props"defaultPropsIndex"default-expand-all:filter-node-method"filterNodeIndex"…

LeetCode 226. 翻转二叉树

226. 翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&#xff1a;[2,…

redis 从0到1完整学习 (十八):阻塞/非阻塞 IO

文章目录 1. 引言2. redis 源码下载3. I/O 模型3.1 阻塞 I/O3.2 非阻塞 I/O 4. 参考 1. 引言 前情提要&#xff1a; 《redis 从0到1完整学习 &#xff08;一&#xff09;&#xff1a;安装&初识 redis》 《redis 从0到1完整学习 &#xff08;二&#xff09;&#xff1a;red…

jetlinks 规则编排中的函数节点使用 js 脚本格式化输出当前系统时间的坑

网上搜到的都是类似如下这种&#xff1a; // 获取当前时间 var date new Date();// 格式化输出当前时间 var year date.getFullYear(); var month date.getMonth(); var day date.getDate(); var hour date.getHours(); var minute date.getMinutes(); var second date.…

捷为科技亮相2024深圳PMO年度论坛 探讨项目管理赋能企业数字化转型

1月13日&#xff0c;一场聚焦项目管理创新与数字化转型的盛会——2024年深圳PMO年度论坛在深圳新一代产业园隆重举行。本次论坛以“项目管理赋能企业数字化转型”为主题&#xff0c;汇聚了众多行业专家、学者和企业代表&#xff0c;共同探讨如何通过项目管理推动企业数字化转型…

电商概念之商品模型

1、基本定义 广义定义&#xff1a;商品是为了出售而生产的劳动成果&#xff0c;人类社会生产力发展到一定历史阶段的产物&#xff0c;用于交换的劳动产品。 电商商品基本概念&#xff1a; 商品类目商品属性销售属性商品编码&商品规格编码SKU和SPU… 2、商品类目 电商平…