InfoQ@唱唱反调:风口上的技术不要盲目追
本文插图
作者丨蔡芳芳
对于前端领域的开发者来说 , “学不动了”虽然更多是一种调侃 , 但也真实地反映出了他们面对频繁出新的前端技术时又爱又恨的心情 。 在经历了移动互联网的大爆发后 , 前端领域的边界不断扩张 , 新技术、新概念、新框架层出不穷 。 这在一定程度上迎合了开发者喜欢追踪热门框架和技术最新发展的天性 , 但同时也带来了新问题 。 热门框架那么多 , 到底该选哪个?新技术引入并非毫无代价 , 一味追求新技术是不是合理?最火、最流行的技术一定适合你所在的团队吗?
在大前端领域 , 我们已经看到了太多技术风口 , 关于如何做好前端技术选型这件事 , 我们希望能从不一样的视角聊一聊 。 为此 , InfoQ 近期采访了阅文集团技术专家、前百度 T8 资深研发工程师彭星 , 谈谈他对目前大前端发展趋势和架构演进的理解 , 并总结了他在技术方向选择和方案选型上的经验 , 希望能给大家提供一些参考 。 另外 , 彭星是 GMTC 全球大前端技术大会(北京站)2020 大前端架构演进专题的出品人 , 该专题将通过解读行业具体实践案例明晰前端架构演进的路径和未来方向 , 感兴趣的同学可以关注 。
大前端架构十年演进
彭星进入淘宝和百度实习的时候是 2010 年 , 到现在刚好十年 。 回顾过去这十年 , 前端领域经历了一场不大不小的变革 。
2010 年 ,AJAX 已经应用多年 , 十分成熟 , 虽然出现了 backbone 这样的 MVC 框架 , 但真的用 MVC 框架开发用户产品的并不多 , 绝大部分是内部管理系统 。 这个时期主流前端是开发后端模板 , 通过服务器端渲染 , AJAX 用来做页面内容的局部更新 。 要说 2010 年前对业界影响比较大的一件事情 , 就是 Chrome 团队开发的 v8 引擎 , 大幅提升了 JS 的性能 。 这时候还没有大前端这一说法 。
同年 , 基于 v8 引擎的 Node.js 出世 , 使得前端开发人员可以用 JS 编写服务器端代码 , 接管渲染层 , 开启了大前端的大门 。 不过 Node.js 在服务端使用真正被开发者接受是在 2012 到 2013 年左右 , 前后端分离开始变得流行 , 这时候的前端包括前端和渲染层 。
再后来就是改变世界的移动时代的来临 , 流量逐渐从 PC 分流到移动平台 。 Web 相比 Native , 具有跨平台、开发成本低、周期短、发布周期短等优势 , 在移动开发上赢得了不小的市场 。 这一时期出现了 Hybrid 混合开发 App , 结合了 Web 和 Native , 谁也没能替代掉谁 。
但是 , Hybrid 毕竟也是 WebView , 性能相比 Native App 依然存在不足 , 而在手机这样小的屏幕上 , 用户体验尤其重要 。 想要 Native 般的体验 , 又想要 Web 跨平台、动态发布等优点 , 并不容易 , 但办法总是比困难多 , React Native 的出现 , 将两者的优点融合在一起 。 这个时候大前端的边界再度扩大 , 涵盖了前端、渲染层和端开发 。
然后就是近两年小程序和 Flutter 的流行 , 使得大前端的概念和范畴进一步巩固 。
这期间不断涌现的新技术给前端开发者和前端团队 Leader 带来的困扰是:那么多新框架、新技术、新编程语言 , 怎么选?
盲目跟风不可取
最简单的一种方式是互联网大厂选什么 , 跟着选就是了 。 这其实是在技术选型上偷懒 , 却也是当前业界普遍存在的情况:很多公司在前沿技术方向上盲目跟风互联网大厂 , 并没有好好考虑这些技术方案是否真的适合自己 。
比如 , 企业官网是不是应该用 MVVM 框架来做?彭星的答案是不应该 , 在他看来 , 企业官网需要 SEO , 交互少 , 传统的服务器端渲染是最好的解决方法 。 虽然用 Node.js 做 React/Vue 的 SSR 也能解决 SEO 问题 , 但这其实是把简单问题复杂化了 , 不仅费人费事还费财 。
推荐阅读
- 『微信』11亿人公域流量首次对个人开放,微信视频号风口你抓住了吗?
- 「运营商」运营商抢占边缘计算先机,风口之下如何发挥5G新能力?
- 「外卖」外卖代运营从风口回归,再惠如何成长为行业头部玩家?
- 「疫情」在线教育迎风口,少儿编程难起飞
- ■“云游戏”风口之下,百度给用户定制了一款“云手机”
- 『风口上吹风的猪』掌阅推出首款彩屏电子书阅读器,用它看漫画体验到底如何?
- 【短剧】新风口来了,这个市场将爆发?一天涨粉50万,巨头们已开始布局……
- 「Facebook」“在风口上,猪也能飞起来!”2020年第15周,国内外的风口在哪呢?
- 『5g』5G技术驱动下在线教育成新风口,直播教学不缺课
- 天猫:2020,让我们一起步入电商的风口之中!