在大前端领域,我们已经看到了太多技能风口,关于如何做好前端技能选型这件事,我们希望能从不一样的视角聊一聊。为此,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 问题,但这实在是把大略问题繁芜化了,不仅费人费事还费财。
彭星认为,大厂在技能探索上投入很大的人力物力是有情由的,他们的业务模块多且繁芜,既须要保留办理方案的灵巧性,也须要可掩护性,但这些不应该是中小企业优先关注的问题。
彭星表示,互联网大厂、传统企业和中小型企业,在前端技能选型上该当有不同的侧重点:
互联网大厂,核心技能自研非常有必要,由于只有自己节制核心技能才能不受人制约,以是大厂在技能探索上投入很大的人力物力。大厂的二级业务才会选择利用内部自研的或者社区影响力大的技能方案。传统企业,须要结合自身企业类型来选择前端技能方案。传统企业每每须要承接各个平台过来的流量,载体一样平常是网站和小程序,小程序不用多说,网站还是紧张看是否须要 SEO,是否便于在主流平台进行分享传播,一样平常选择后端直出的框架合营 jQuery 即可。中小型企业,这类型的企业有一定的研发能力,业务类型多样,以 Native App 和小程序居多,网站只是 App 引流工具或者活动页面。Native 的办理方案取决于业务类型,只要不是非常繁芜且对可靠性哀求很高的运用, Flutter、RN 等跨平台方案是很好的选择。综上所述,技能选型首先还是要参考业务需求,“同时也呼吁同行,不要为了达到一些目的而大肆鼓吹,这对相信你的开拓者很不卖力”,彭星进一步补充。
前端技能选型履历小结彭星毕业后在百度事情了 9 年,期间卖力百度搜索团队的前端技能,曾主导百度搜索前真个优化和重构事情;2020 年加入阅文集团卖力创新中台团队,团队成员共有 50 多人,包含了前端、客户端、做事端平分歧角色,是名副实在的大前端 + 的团队,集团的新产品都从这里孵化。虽然新老雇主的前端团队规模、紧张业务均有不同,关注的技能点也有差异,但在技能选型上却有一点是相同的,那便是以实用为主。
彭星表示,阅文对付前端技能的关注点紧张是实用,要能办理业务中的问题,同时要有技能架构上的灵巧性,由于业务的繁芜度不高,因此技能一样平常都是拿来直接用,比较方便;百度的体量更大,每个大的团队关注点也会有一些差异,彭星之前所在的百度搜索团队,对付前真个关注点同样是实用为主,由于搜索系统弘大而繁芜,也会关注前端技能能否办理大型系统中的组织构造灵巧性和可掩护性问题,同时还哀求性能最好,一样平常很少直策应用业界的技能,而是接管加以改进,再用到项目中。
彭星在做技能选型时一样平常会参照以下几个步骤:
首先看自身的紧张问题是什么, 业务须要什么;再看业界有什么办理方案,一定要结合自身业务的紧张诉求;方案决定后,选择框架,选择社区大而生动的。对付大前端领域现在很火的前沿技能,如 Vue、React、Flutter 这三大框架,以及 Serverless 等,前端团队如何判断这些技能是否适宜自己?
彭星参照上述技能选型的几个步骤给出了一些建议:
首先看业务的形态是什么,后台管理系统、移动端网站、移动端 App 还是其他形态。
Vue/React 办理的问题类似,紧张是富交互场景,比如管理系统,或者移动端 Web App。当然他们都可以作为 Hybrid 的前端框架继续在 App 里,如果是在 Vue 和 React 中挑一个的话,大型系统选择 Angular,有洁癖选择 React。Flutter 的选择就很大略了,移动端想跨端、节省人力、乐意学 Dart 就可以,只是 iOS 上的动态更新要费点事。Flutter 现在最紧张的竞品实在是 React Native,RN 由于苹果的那条传言已久的禁令,受到的影响不小,如果担心这个,可以不选 RN。
彭星坦言,过去一年 Serverless 观点的火爆有点超出自己的预期。
在我看来,Serverless 还早了点,再者,它办理的问题也不是前端圈子首先该当关注的问题,我也没以为现在运维本钱有多高,反而从现在一个容器里将业务拆成一个个函数的一次性本钱有点高。
它在一定程度上会让开发者对架构和代码的掌握力变弱,想做优化,想做改进,很难,你只能靠云帮你做。还是那句话,选最得当的,而不是最好的,更不是最『盛行』的。
对付未来,彭星持续看好前端和端领悟的方向,他卖力的团队也会在这个方向上连续投入人力。在他看来,前端和端领悟带来的收益是最直接和明显的,人力投入能减少 50% 旁边,非常可不雅观。
关注我并转发此篇文章,私信我“领取资料”,即可免费得到InfoQ代价4999元迷你书!








