这些技术会决定前端开发者们的未来发展

我一边听开发者在网络上抱怨工作难找,前端开发早已经饱和了,又在另一边听大厂的朋友们抱怨,招了很久的人,四处出击却填不满HC,前端人才市场就是这么充满了矛盾与反常。

其实仔细想想,出现上述的情况很容易理解,实际上前端开发单纯从数量上已经饱和了,所以大量的初级前端工程师找不到活干,但是从另一方面,高级前端工程师依然是凤毛麟角,高级岗的HC永远是不饱和的。

目前前端人员的分布是金字塔形的,而且是底部比较长的金字塔形状:

所以进阶是大部分前端开发必须要面对的事情,现在已经不是能写几个页面就能找到工作的时代了,只有往上进阶才能保持职业竞争力,否则我们谁都不能保证下次裁员潮来临的时候,我们会不会成为沙滩上裸泳的人。

我对前端技术的思考方式

前端社区是非常活跃的社区,几乎每过一段时间都会有新的技术或者新的开发方式变成了热点,因此前端开发者才会有了『学不动了』的梗,以及毕竟丢人的Deno留言事件。

以我自己为例,因为想自己开发一个APP,所以面临技术选型,也面临将来要投入大量时间选择学习的技术,摆在我面前的有三个选项:

  • Flutter跨平台技术

  • RN跨平台技术(WEEX除了阿里生态外,很少用的)

  • 原生技术

到底选择哪一个技术既能满足开发APP的需求,又值得投入时间进行学习呢?

如果你去知乎或者其他技术类的社区去问,绝大多数的回答是Flutter(虽然从回答来看很多答主似乎都没用过Flutter),Flutter作为正式发布才刚刚半年的新技术已经席卷了整个大前端圈子,成为了当之无愧的第一热点,真是佩服谷歌的布道能力。

关于Flutter的事情我思考了很久,也用它快速开发了一个demo,它有很吸引人的地方:

  • 声明式UI这跟react很像,比Android 那种UI编程方式先进太多(笔者很早之前写过一个Android APP,那编码体验不谈了)

  • 更彻底的跨平台,直接调用Skia绘图引擎进行组件渲染,比RN更加底层,它的理念更像是游戏。

  • 更大的潜力,有消息称Flutter是谷歌新操作系统的第一指定框架,这意味着你可能搭上这新系统的风口。

这门技术确实很吸引人,加上社区各个会Flutter不会Flutter的人义务宣传下,我甚至快决定好好学习一下Flutter了。

但是,大家有没有想过,通过学习Flutter,你的技术就提升了吗?

很多人第一反应是『当然了,学了一门新技术,学了一门新语言,难道技术不是提升了吗?』。

但是我觉得并没有,我其实依然在原地打转,一个Java开发者学会了用Ruby增删改查并不能代表能力提高了,一个前端开发者用RN或者Flutter开发了简单的APP也不能说明水平提高了,只不过是用另一种语言再写了一遍UI而已,会用三种框架写页面,并不是什么高技术含量的事情,会三种不如深入一种。

Flutter跟RN一样,想玩得转必须深入到原生开发中,因为这两个技术都不是真正的跨平台,他们仅仅是UI跨平台,如果你仅仅学一个Flutter写写UI,意义不大,也不存在能力的提升。

我们或者再功利一点地思考,就算你学会了用Flutter写UI又怎么样呢?你们公司内部有Flutter项目吗?即使有轮得到你施展拳脚吗?毕竟你没有原生平台的知识储备,仅仅写个UI又有什么呢?

其实,这个例子说了这么久,我只是在说两件事情:

  • 我们有时候看似在学很多技术,其实这些技术并不能提升你,但是给你造成了『我学了新东西能力提升了』的自我感觉偏差

  • 不要盲目追寻社区的热点,很可能捡了芝麻丢了西瓜,要仔细思考这门技术对于你本身是否有提升,而不是被布道师们『洗脑』

我以这种思考模式仔细研究了近一段时间热点的技术,有几门技术我可以比较确信在未来会在前端开发领域大展拳脚。

TypeScript

我从2017年就开始使用TypeScript了,可以说正当时,在使用过程中踩了很多坑,也总结出很多经验,知乎上的问题『你为什么不使用TypeScript?』中的最高票回答就是笔者本人。

在2019年的年中,我可以非常确信TypeScript会在一年内大规模流行,怎么定义大规模流行?

超过30%基于前端框架的新项目会以TypeScript为主要语言开发。

原因我总结了三点。

逐渐统治开源社区

大量重量级前端开源项目采用TypeScript开发,包括不限于:Angular、VScode、Vue3.0、Rxjs、TypeScript(对,它自举)、Mobx、deno、Antd,而且这个趋势越来越明显,包括Facebook自家的Jest也宣布从flowType转向TypeScript。

这些重量级的开源项目有非常强得带动作用,我不止一次见过有的前端开发者说,为了看懂Antd的源码,特地学了TypeScript。

可以说,TypeScript的开源生态已经非常完善了,公司完全可以放心大胆得进行TypeScript化开发。

TypeScript是真正解决生产力问题的技术

请问前端开发中,引起错误的最多的三种报错是什么?

你不会想到,是:

  • Uncaught TypeError: Cannot Read Property

  • TypeError: ‘undefined’ Is Not an Object (evaluating...)

  • TypeError: Null Is Not an Object (evaluating...)

居然是三种非常非常低级的错误,原因就是JavaScript是动态语言,只有运行时才会报错,这些低级错误在类型定义完整的TypeScript中不会发生,这就是TypeScript的优势之一,编码时就能规避大量的类型错误。

TypeScript完整定义接口,可以减少非常多的沟通成本和文档编写成本,最好的文档就是类型,除此之外,有了TypeScript的支持前后端的协作也会非常方便,有了TypeScript我们完全可以开发一个工具把后端Java Swagger的信息映射到TypeScript中,方便我们取数并最大程度规避错误。

现在已经有了这么一款前端取数库pont.

总而言之,TypeScript解决了前端的两大问题,规避错误和提升效率。

阿里 MidwayJs Team的负责人在GMTC上就说到过『 TypeScript,来帮助我们解决这些质量,习惯,方法上的问题,就拿 midway 团队来说,自从使用了 TypeScript,质量提升的非常明显,平常需要测试很久的代码,几乎不会出现低级的问题,反而暴露出的大多都是逻辑问题。』并提到『而今年,我们希望新应用全量使用 TS。』

Vue3.0会是TypeScript大规模普及的导火索

Vue3.0将在下半年的发布,虽然尤雨溪确认Vue3.0支持JavaScript和TypeScript两种语言,但是vue2.x那种残疾级别的支持到现在原生支持TypeScript,势必会引起大量以vue为技术栈的公司进行TypeScript化运动。

届时三大框架都可以完美支持TypeScript,甚至其中有两个是由TypeScript直接开发的,而vue在国内的用户量最多,也最能影响TypeScript在国内的走势。

而据我所知美团、饿了么等一大批vue技术栈的前端团队也已经大量实践了TypeScript,至少在大厂层面,TypeScript已经开始大规模普及了。

图形技术

图形技术不会在短时间内席卷前端,也永远不可能成为前端的热门技术,但是却是前端开发者进阶必学的技术。

为什么说图形技术不会在前端大火?

要火早就火了,今年年内都要发布webGPU了,绝大部分前端连webgl1.x都搞不清楚,归根到底是技术栈不匹配,前端开发和移动端开发虽然很大一部分工作是实现UI,但是这个实现方式几乎都是调用宿主内置组件,极少有用图形接口画UI的情况。

为什么又说是进阶必备?

图形技术可能是仅有的与前端有密切联系的计算机底层技术了,因为所谓的UI就是靠图形接口调用GPU绘制而成的,这样就意味着掌握图形技术就能更深度地定制UI。

未来的前端UI不仅仅是简单的Input、Table、List等粗颗粒的组件构成的,而是更加多元化、更加细粒度,就拿笔者最近研究的可视化大屏项目来说,它几乎用不到任何传统的前端组件,一部分2D组件是调用Canvas绘图接口,一部分3D组件是靠webgl绘制而成。

今年下半年5G开始在国内大面积铺开,普遍的一个观点是认为5G的到来会让AR、VR等虚拟技术重新焕发生机,这些技术也无一例外不与图形技术相关联,毕竟你总不会认为在AR中绘制一个input组件吧。

从去年开始关注图形技术,我也惊喜的发现跟一些前端专家们的观点不谋而合。

一个是年初奇舞团的leader月影在知乎的回答:

另一个也是年初winter的前端技术预测:

编辑器领域技术

这里的编辑器指的是各种编辑器的总称,例如:代码编辑器(WebIDE)、图形编辑器(在线的3d建模或者ps)、文本编辑器等。

编辑器领域技术不会像TypeScript一样蔓延到几乎所有的前端团队,但是一定是会在局部火起来的技术。

为什么说只会在局部火起来?

这是个非常小众的领域,但是复杂度和重要性却与日俱增,首先绝大部分公司的绝大部分业务场景中对编辑器的需求很小,其次,编辑器的通用性很大,每个网站的具体业务场景的实现千差万别,但是说到用户输入的文本编辑器,那可能用的都是同一款开源软件。

说完了局部,我们在谈谈为什么会火,最重要的一点就是云端开发的普及,大量的开发者服务被移植到云上,包括最近比较火的FaaS、小程序服务等等,云厂商一方面为了给开发者提供更好的服务,比如开发FaaS的调试服务,所以需要定制符合自己业务的webIDE,另一方面也更重要,一个开发者的开发环境轻易是不会变的,webIDE就是这个环境,webIDE就是云厂商开发者争夺战的入口。

另一个原因就是,大规模的团队十分需要将各个团队的能力整合在一起,而整合开发的钥匙就是IDE。

虽然很多公司招编辑器相关的工程师都是挂着前端的Title,但是普通的前端工程师如果没有相关经验,完全拿不下这种场景,这就造成了虽然这是个小众领域,但是人才却很缺失的情况。

下图为圆心在GMTC上展示的阿里前端委员会布局的四大方向:

谈一谈其它热点技术

  • Serverless

Serverless肯定会火,而且也是生产力上的直接提升,前端可以不考虑部署、运维、环境等场景,直接编写函数来实现后端逻辑,可能以后人人都是所谓的全干工程师了。

但是为什么没有重点拿来将,首先serverless的适用场景还比较轻量,他不是银弹,现在的serverless热在一定程度上夸大了它的实际作用。

还有一点,对于前端而言Serverless其实是工具,你只能拿来用,本身的开发需要云原生的专业开发者,所以前端根本无法深度参与,他反而把前端对node的要求降低了(因为只要会代码,不需要后端知识),但是对于企业和团队是好事,对于个人而言并不是非常有助于成长的一门技术。

  • IOT

5G来临,万物互联的说法又随之而来,IOT会不会在5G时代火,我并不确定,但是前端在IOT上想大展身手我觉得这几年内看不到进展。

有人会说不是有人把js移植到嵌入式领域了吗?是的,甚至三星还为IOT设备定制了js虚拟机。

IOT是低性能低功耗低内存的设备,越是在这种场景下,低运行时高性能偏底层的编程语言越强大,可惜js与此恰恰相反,这门语言天生不适合IOT,而C语言却如鱼得水。

ps:我之前听过一个专门搞IOT的技术专家说过,js最大的问题就是功耗,很多便携式的IOT设备上js根本没办法商用(充电五分钟,待机5秒钟)

那为什么还有那么多人在炒js in IOT这个话题?

感兴趣的可以听Ruff的作者郑晔的电台采访。

原因就是js开发者多。。。有技术难度的底层技术都会被专业的嵌入式开发者搞定,js开发者只需要写业务即可,所以又回到关于Flutter的问题了,你在IOT写业务比浏览器写业务有啥技术提升呢?

当然了,从职场角度搞IOT还是有前途的,一旦IOT火起来,先进入这个领域的人可以更轻松地摘桃子,但是我个人不推荐现在就入坑,风险远大于收益,如果真的对js in any感兴趣,不如去研究js runtime,比如node和deno,这是真正有助于提升能力的技术。

  • GraphQL

GraphQL已经被炒了好几年了,但是依旧动静不大,不是技术本身又有问题,是这门技术严重损害了后端开发利益。

GraphQL对于前端开发者是真的好用,从此不用求后端大哥搞新接口了,完全可以自给自足,但是这个让前端开发爽到天的技术,付出的代价就是大量的改造工作需要后端来做,后端团队累死累活搞了GraphQL,得利最大的却是前端,出了错锅得后端背,这种技术推动的阻力可想而知。

这门技术考验的是跨团队沟通协作能力,不是技术本身,当然很多时候前者比后者更重要,但是与本文主题不符,按下不表。

  • AI IN FE

这几年炒的最火的技术就是AI,虽然这个领域跟前端可以说没有任何交集,但是依然有很多人想往这方面靠。

先说tfjs的问题,基于浏览器的深度学习框架,其实应用范围非常非常窄,笔者在调研的时候没有发现什么有商业价值的案例,在浏览器中跑深度学习本来就很小众,再加上js本身的性能问题和浏览器没有支持GPU加速的API,导致tfjs更像是个残次品,实际上一些前端团队虽然在开发AI应用,但是基本用的都是正宗TensorFlow。

目前算是比较靠谱的前端+AI的场景就是自动化UI,将设计师的设计稿自动生成UI组件,还原UI是非常机械重复性的工作,早日干掉还原设计稿可以充分解放前端,目前闲鱼的大前端团队已经有相关的成果了。

前端就算涉及AI,也最多是停留在工具使用阶段,也就是所谓的『调包侠』,当然,即使这样你能帮助团队解决生产力问题,那么已经是大功一件了,建议有能力的同学可以布局一下这方面的技术,但是对于绝大多数人而言,玩转深度学习即使是调参也是很遥远的事情。

从事全栈6年,专门建立的学习Q-q-u-n ⑦⑧④-⑦⑧③-零①② 分享学习方法和需要注意的小细节,互相交流学习,不停更新最新的教程和学习技巧(从零基础开始到WEB前端项目实战教程,学习工具,全栈开发学习路线以及规划)点:学习前端,我们是认真的

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,688评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,559评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,749评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,581评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,741评论 3 271
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,684评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,122评论 2 292
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,847评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,441评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,939评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,333评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,783评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,275评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,830评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,444评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,553评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,618评论 2 249

推荐阅读更多精彩内容