『前端技术』相比后端是否只能打辅助?

问题来源于知乎提问,截图以下: 前端


  1. 先后端如何定义
  2. 前端生存现状
  3. 前端的下半场
  4. 前端的机遇

1. 先后端如何定义?

论坛上人们常常会为先后端的问题展开撕 x 大战,不少时候问题的根源是没有定义好先后端的概念.vue

由于这两个词自己就很笼统,就我我的而言我是这样理解的webpack

狭义前端: 就是纯粹的 Web 前端,基于浏览器技术是前端应用c++

狭义后端: 就是纯粹的 Web 后端,基于服务器为前端提供接口的后端应用git

因此在理清这些概念后咱们才能够正常讨论问题,一些后端把大数据和人工智能跟后端联系在一块儿是很扯淡了,大数据开发有专门的数据工程师操盘,人工智能也有对应的算法工程师操盘,除了一样运行在后端,跟web 后端是邻居之外,没有太大关系.程序员

一样,前端也不能把什么游戏开发跟本身扯到一块儿,web 端游戏除了跟前端一样运行在浏览器之外,也没啥太大关系.github

  1. 国内前端生存现状

目前的现状也很明显,以阿里为首的淘系技术(类电商)其难点就是在于后端,前端仅仅是薄薄的展现层,好比玉伯的回答web

一般一家公司,后端人数远远多于前端,后端项目的复杂度也远高于前端,这是国内很现实的状况.算法

一样还有一个常见的说法,前端转后端隔层山,后端转前端隔层窗户纸,不少后端程序员表示转到前端发现工做轻松了不少,框架学得很快,两天就上手工做了,其实这不是吹牛,这确实是当前的现状.后端

那么是否能够作下定论了,前端确实只是负责渲染的展现层,做为后端辅助是很正常的?

是的,在当前环境下这个说法无疑是成立的,但是咱们忽略了一个基本状况,目前国内绝大部分企业都是面向 C 端企业,好比美团、滴滴、知乎、淘宝、百度、头条等等,能数得上的巨头企业无疑服务于 c 端用户,若是你业余对产品有必定研究就应该知道一个基本理念,c 端产品的设计必须越简单越好,c 端产品必须基于一个基本假设--用户都是傻子

举个例子,即便现在淘宝注册已经如此方便了,在 2017 年淘宝赞助的春晚当夜淘宝的客服炸了,缘由不是服务器顶不住,而是下沉到三四线甚至县城的淘宝新用户疯狂打电话问淘宝客服如何绑定银行卡?

因此在这种产品设计理念下,前端根本不可能作出什么花样来,由于前端产品的复杂度永远不能超过 c 端用户理解能力的下限。

并且巨头们的产品形态也决定了其不可能有复杂的前端交互,美团、淘宝这种电商性质的网站自己就是展现商品的,其最复杂的点也不过是购物车的逻辑和下单逻辑,而知乎、头条这种社区、新闻类的应用则更简单,几乎就是展现文章。

咱们能够看到,目前巨头们的产品性质和用户群体决定了前端的复杂度,在这种状况下前端的的确确是打辅助的,后端承接了巨大的业务逻辑,并且又由于面向 C 端,其用户量巨大、用户敏感度极高,越是这种状况下越要保证服务器的高可用和高并发,这个时候服务端的架构设计几乎是决定了产品的生死,而前端是够用就行。

因此,能够给前端判死刑了?

竟然有之前端为核心的商业产品?前端怎么可能为核心技术,并且是厚厚的一层?

一年多之前我曾经作过一个项目,里面有一个需求就是在前端读取本地 excel 文件渲染到浏览器里,而且经过浏览器能够作必定程度的计算、修改、排序等操做,这是我目前作过最复杂的前端项目了,虽然具体的技术细节早已经忘记了,可是我还记得当时急的挠头的状态,最终我也没有作的很漂亮,从 github 搜罗了各类开源项目拼凑成了一个可用的功能。

在那以前我我的对本身的技术能力仍是有必定信心的,可是那个功能把我搞得很狼狈,首先得分析一下这个需求:

  1. 从本地读取 excel,这个时候就须要一个 excel 解析器,把 excel文件解析成 js 相关的数据结构。
  2. 渲染 excel,这个时候须要一个 excel-like 的前端组件,能将 js 相关的数据结构渲染成 table 表格。
  3. 操做 excel,这就得保证这个组件不只仅只是渲染,还得保证可编辑。

有人会说,这还不简单,github 上搜相关开源项目组装就完事了,但是问题就在于这个需求不是简单的组装,咱们还得考虑现实状况。

  1. 本地 excel 可能会很大,有几万条数据,js 相关的 excel 解析器会在解析过程当中产生浏览器假死的状况。
  2. 大量数据的 excel 在渲染过程当中会产生卡顿,不只如此,对上万行数据进行排序也会产生卡顿。
  3. 如何保证数据安全,在编辑表格过程当中出现了断网、浏览器闪退,数据怎么办?

你必定想知道我是如何解决这个复杂问题的。。。 其实我没有解决得很优雅,由于这个需求的复杂度太高,若是完美解决甚至能够单独作一个创业项目了,最终我在web worker 中解析 excel,浏览器假死的状况就迎刃而解了,排序和计算的卡顿我分了两种状况,在数据量低于 5000 的时候直接有主线程计算,超过这个数字一样开启 web worker,毕竟主副线程通讯也是要开销的,表格储存则更粗暴,直接在本地全量保存,每隔 10 秒钟同步一次,上传以后再在本地清除.

咱们试想下若是上述的需求不是一个简单的功能需求,而是一个产品呢?若是把微软 office 系列、Adobe 全家桶、ide 搬到浏览器里会怎么样?

固然,我知道已经有公司作出相似产品了,这些产品就是所谓的前端核心技术产品,这些产品也有一个共同特色,用户是专业人员或者 B 端用户,这个时候产品的设计理念是尽量把功能作强大来知足专业人士的需求,而非 c 端尽量简单来保证用户能理解。

除此以外,这种形式的产品与 c 端产品还有一个巨大不一样,那就是用户数量,因为面对专业人士这种小众群体,其用户量在中前期并不会太多,甚至作到后面的用户量可能都跟今日头条差个数量级,这个时候后端的高并发彷佛并非最棘手的,而产品的核心卖家反而在前端的功能开发上。

3. 前端的下半场

讨论到这里咱们是否是能够达成一个共识?面对普通消费者的流量应用以淘宝、头条为首,其产品形态和用户群体致使其前端不可能作出太复杂的应用,而前端为核心卖点的应用集中在相似于在线office这种面向专业人士的产品上。

那么为何如今的现状是展现类的流量应用占据绝对主导?

  1. 互联网人口红利效应,过去十年是互联网人口红利的十年,搞个APP ,靠砸广告、砸补贴获取廉价用户,而后忽悠投资人融资上市圈钱,在获取用户如此方便如此廉价的年代,不多有人会静下心来去经营那些面向专业人士的复杂应用。
  2. 浏览器技术的不成熟,过去十年咱们基本上消灭了 IE,可是不能否认在过去很长一段时间 IE 占据不少份额,也不能否认前端技术也是最近几年才发展起来,像 Gmail 那种应用放在当年也就谷歌那种超级巨头 hold 住,即便如今若是没有 WebAssembly 的加持咱们也很难开发出媲美photoshop的浏览器应用.
  3. 前端从业者的不成熟,不只指一线开发者更指一线管理人员,前端从业者从刀耕火种到如今温饱奔小康也就这几年的功夫,出个 vue3这种专为下降框架使用门槛的框架都有喊学不动的,面对 Adobe 全家桶那种超级应用很难想象依靠目前的开发者来开发,这种级别的产品须要强大的软件工程管理能力和扎实的软件开发技能,从这一点上前端从业者显然没作好准备.

可是这个现状不会维持过久,BS 架构早晚会进入这些超级应用的法眼,浏览器+云会是这种产品的常态,会有愈来愈多的超级应用进入浏览器,前端这个年轻的行业也会正式进入下半场.

我是基于如下判断:

  1. 互联网人口红利已经开始逐渐消失,固然拼多多这种将战场下沉到四五线城市甚至农村的企业仍然能够得到成功,可是目前来看拼多多已经一沉到底了,不可能再有新的红利了,没有了流量加持,c 端的机会愈来愈少.
  2. 一个产业成熟的标志是出现了大量 B 端企业,当初的美国兴起、日本兴起都是从开始的代工厂(富士康)到组装厂(联想),可是真正在产业中占据上游,占据主导地位都是B 端厂商的大量出现,好比目前绝大多数国产手机的核心零部件都是受制于美日韩的 B 端巨头,IT 产业不能只有头条、淘宝、美团,也得有中国的微软、Adobe 和Autodesk,可是目前来看尚未.
  3. 浏览器技术已经趋于成熟,目前浏览器还有两个大招没放出来,一个是尚未成熟的 WebAssembly,性能直逼 native,听说 office 编译成 WebAssembly 以后体验丝绝不逊于原生,一个是今年下半年即将出场的 webgpu,他的出现能够将浏览器的图形计算提高到另外一个高度

因此,下半场的前端可能要求会愈来愈高,好比须要更好的基本功(算法功底),好比须要一门 native 语言(c/c++),好比须要良好的图形技术(webgl、webgpu)。

4. 前端的机遇

到如今为何只看到了前端愈来愈重要,技术要求愈来愈高,不见涨工资?

目前前端职场其实也处于一个平衡期,由于前端红利其实也在这两年消失了,前端 leader 升职最快的那几年刚好是前端工程化运动最热烈的那几年,2011-2016也正是三大框架前后发布,ES2015 逐渐普及,Babel、webpack 这些事实标准诞生的时间段,那个时候把项目从 JQuery 重构到 React 就是大功一件,足以在升职答辩上赚足了眼球,那个时候在项目里用上 Webpack 就叫工程化也是拿绩效的利器,目前大部分前端 leader 就是靠着一波红利走上个管理岗或者高 P,因此红利期不只对于商业公司,对于职场人士也是适用的。

2016 年以后 IT 职场的红利已经转移到区块链和人工智能领域,毕竟用 TensorFlow 调个参当调参小王子也能拿 50w 年薪的年代没过去多久,这么看 AI 的红利可比前端大多了。

是否是能够判断,前端的职场新人空间已经被红利期的老人们挤压没了?

在固定的产品需求下实际上是这样的,一个企业一旦不扩大,你负责的业务也不增加,当前的产品形态也不变化的状况下倒是机会并很少,毕竟升职加薪的前提是得有坑,而且你得有成绩,在红利期结束后虽然你还有机会,可是机会确实很小了,由于须要作出更有价值的事情。

可是大部分公司不可能一成不变,随着咱们上节提到的前端下半场的到来,好比云计算公司须要把开发者紧紧绑定在本身的云端环境上,那么他们就须要云端的 WebIDE,这种 B端面向专业人士的复杂前端项目是否是就是个挑战同时也是机遇?没有必定技术储备的前端根本 hold 不住这种项目,就如同我面对 excel 需求时那样无力,一样是写新闻展现页面你们的差距都不大,这个时候技术不重要,可是随着项目复杂度的上升技术其实愈来愈重要了,这就是机遇。


总结

前端在面对 B 端专业用户形态的产品下每每能起到核心技术的做用,可是同时对前端的技能要求也会更高,互联网 c 端产品的红利期即将结束,前端的下半场即将到来,咱们能作的是什么?

深挖洞,广积粮,缓称王。

相关文章
相关标签/搜索