架构师(2020年4月)

本期推荐内容:去了Oracle,难道真是省了许可费、花了运维钱吗?Ant Design 4.0发布,我们和核心作者聊了聊
用户头像
作者: InfoQ 中文站
下载此书
架构师(2020年4月)

卷首语:唱唱反调:风口上的技术不要盲目追

作者:蔡芳芳

对于前端领域的开发者来说,“学不动了”虽然更多是一种调侃,但也真实地反映出了他们面对频繁出新的前端技术时又爱又恨的心情。在经历了移动互联网的大爆发后,前端领域的边界不断扩张,新技术、新概念、新框架层出不穷。这在一定程度上迎合了开发者喜欢追踪热门框架和技术最新发展的天性,但同时也带来了新问题。热门框架那么多,到底该选哪个?新技术引入并非毫无代价,一味追求新技术是不是合理?最火、最流行的技术一定适合你所在的团队吗?

在大前端领域,我们已经看到了太多技术风口,关于如何做好前端技术选型这件事,我们希望能从不一样的视角聊一聊。本文整理自近期与阅文集团技术专家、前百度 T8 资深研发工程师彭星的采访交流。

对于新框架、新技术、新编程语言怎么选,最简单的一种方式是互联网大厂选什么,跟着选就是了。这其实是在技术选型上偷懒,却也是当前业界普遍存在的情况:很多公司在前沿技术方向上盲目跟风互联网大厂,并没有好好考虑这些技术方案是否真的适合自己。

比如,企业官网是不是应该用 MVVM 框架来做?彭星的答案是不应该,在他看来,企业官网需要 SEO,交互少,传统的服务器端渲染是最好的解决方法。虽然用 Node.js 做 React/Vue 的 SSR 也能解决 SEO 问题,但这其实是把简单问题复杂化了,不仅费人费事还费财。

说到底,大厂在技术探索上投入很大的人力物力是有理由的,他们的业务模块多且复杂,既需要保留解决方案的灵活性,也需要可维护性,但这些不应该是中小企业优先关注的问题。

互联网大厂、传统企业和中小型企业,在前端技术选型上应该有不同的侧重点。

  • 互联网大厂,核心技术自研非常有必要,因为只有自己掌握核心技术才能不受人制约,所以大厂在技术探索上投入很大的人力物力。大厂的二级业务才会选择使用内部自研的或者社区影响力大的技术方案。
  • 传统企业,需要结合自身企业类型来选择前端技术方案。传统企业往往需要承接各个平台过来的流量,载体一般是网站和小程序,小程序不用多说,网站还是主要看是否需要 SEO,是否便于在主流平台进行分享传播,一般选择后端直出的框架配合 jQuery 即可。
  • 中小型企业,这类型的企业有一定的研发能力,业务类型多样,以 Native App 和小程序居多,网站只是 App 引流工具或者活动页面。Native 的解决方案取决于业务类型,只要不是非常复杂且对可靠性要求很高的应用, Flutter、RN 等跨平台方案是很好的选择。

综上所述,技术选型首先还是要参考业务需求,有几个通用的步骤可以参照:

  1. 首先看自身的主要问题是什么, 业务需要什么;
  2. 再看业界有什么解决方案,一定要结合自身业务的主要诉求;
  3. 方案决定后,选择框架,选择社区大而活跃的。

对于大前端领域现在很火的前沿技术,如 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 还早了点,再者,它解决的问题也不是前端圈子首先应该关注的问题,我也没觉得现在运维成本有多高,反而从现在一个容器里将业务拆成一个个函数的一次性成本有点高。

它在一定程度上会让开发者对架构和代码的控制力变弱,想做优化,想做改进,很难,你只能靠云帮你做。

还是那句话,选最合适的,而不是最好的,更不是最『流行』的。

目录

热点 | Hot

腾讯会议和钉钉:我们太难了

Ant Design 4.0 发布,我们和核心作者聊了聊

理论派 | Theory

Service Mesh 化繁为简:基于 Istiod 回归单体设计

推荐文章 | Article

28 岁退休的非典型程序员:我的人生不需要别人来设计 | 人物特写

观点 | Opinion

去了 Oracle,难道真是省了许可费、花了运维钱吗?

别再推荐 Git Flow 了

专题|Topic

华为硬杠谷歌,开发者“夹缝求生”

阅读数:4011 发布于:2020 年 4 月 8 日 08:00

免费下载此书(PDF)
免费下载此书(ePub)
免费下载此书(MOBI)

评论 (3 条评论)

发布
用户头像
华为赶紧拉着国内的这帮人一起吧系统做好,并且还有俄罗斯等国家可以一起加入搞的,然后大家政策一变只支持自己的系统不支持android,让他们玩蛋去,多好,有了开头就可以不断下去,问题是生态,中国这么大的市场生态不难做,就看政府就行。
2020 年 06 月 18 日 17:37
回复
用户头像
如果是在 Vue 和 React 中挑一个的话,大型系统选择 Angular,有洁癖选择 React
情何以堪啊
2020 年 04 月 23 日 10:57
回复
萝卜白菜,各有所爱,选最适合自己的就好
2020 年 04 月 24 日 00:25
回复
没有更多评论了
  • Spring Cloud:面向应用层的云架构解决方案

    我们应该从效率、成本、稳定性这几个方面来检验架构是否合理,并为架构朝着更加健康的方向发展保驾护航。

    2018 年 2 月 18 日

  • 开篇词 | 量身定制你的持续交付体系

    无论企业在什么阶段,无论个人的能力如何,都可以去尝试“持续交付”。

    2018 年 7 月 2 日

  • 蚂蚁财富的 Flutter 多业务开发实践

    在 GMTC 深圳 2019 大会上,肖凯讲师做了《蚂蚁财富的 Flutter多业务开发实践》主题演讲。

    2020 年 2 月 12 日

  • 聊聊 Flutter,面对层出不穷的新技术该如何跟进?

    Flutter在保证性能下实现跨平台开发,更是成为谷歌下一代操作系统的UI框架,为移动技术的发展提供了非常大的想象空间。

    2019 年 4 月 11 日

  • Moles:携程基于 React Native 的跨平台开发框架

    本文为携程技术中心的投稿。携程关于React Native的大招来了!之前我们分享个过携程曾发布过一个让React Native兼容H5的框架ReactMix,而这个Moles更加彻底,贯彻一套代码到处运行,来看看它是如何实现的。

    2016 年 7 月 25 日

  • 案例研究:利用 Grails 搭建 Feedlr.com 网站

    为什么会选择用Grails来搭建网站,和其他框架相比Grails的优劣势在什么地方?这是Feedlr.com网站开发者也是作者在本文中试图解答的问题。

    2009 年 2 月 12 日

  • 2019 年大前端技术趋势分析

    一晃眼 2019 年已过大半,年初信誓旦旦要学习新技能的小伙伴们立的 flag 都完成的怎样了?

    2019 年 8 月 3 日

  • 唱唱反调:风口上的技术不要盲目追

    在大前端领域,我们已经看到了太多技术风口,关于如何做好前端技术选型这件事,我们希望能从不一样的视角聊一聊。

    2020 年 4 月 3 日

  • Rexxar:豆瓣对混合开发的思考

    前段时间,豆瓣将自己的混合开发框架Rexxar开源了。豆瓣可以说是在国内对HTML5实践最早的一批公司,早在2013年的时候他们就应用了当时还显得超前的Web Component概念开发了CardKit移动UI框架。在移动开发上,豆瓣也采用了混合开发的模式,Rexxar就是他们实践和思考的结晶。我采访了Rexxar的主要开发者之一郭麟,看看他们对混合开发的思考。

    2016 年 12 月 6 日

  • 阿里巴巴的大数据故事:流计算引擎发展史

    流数据处理在阿里巴巴的发展过程中一直十分重要,阿里巴巴也在此基础上做出了很多有意义的项目。今天的主角是流计算引擎的发展。

    2018 年 4 月 13 日