大前端的三层思考-2019-12-21

2019-12-21  本文已影响0人  勇往直前888

是否选择大前端?

虽然现在大前端很热门,是不是适合自己呢?这个需要想一想

技术的广度和深度,哪个优先?

可以简单类比一下,一个人或者一家公司的技术能力是有限的,可以用一个矩形表示。矩形的宽代表技术的广度,矩形的高代表技术的深度。

  1. 大前端是偏向广度优先的,如果在矩形面积一定的情况下,如果宽度变长了,那么技术高度就会变短,产品就会显得粗糙,这是现实的条件限制。
  2. 如果更看重技术的深度,比如垂直细分领域,那么就不适合用大前端的思路来做。放弃大前端,比如,只做iOS原生版本,那么就可以将技术做得深入一点,产品也会显得更精致。
  3. 如果能力强,也就是矩形的面积够大,那么可以两方面都做得很好。比如大公司,就是这么干的。其实市面上这些大前端的技术框架,基本上也是大公司搞出来的。比如,Hybrid是微软的;React是Facebook的,Flutter是谷歌的。

技术驱动还是业务驱动?

大前端的优势是效率高,多端一致性好,带来的好处是响应业务的速度快。同样,带来的问题是技术深度不足,产品相对粗糙。比如,大前端思路下的产品,可以合理地推断,产品体验是iOS下降为和Android一致,而不是Android的体验上升为和iOS一致。

第一层,组织上的大前端

第二层,架构上的大前端

大前端的目标是加大前端技术的比重吗?恰恰相反,大前端的发展方向是“一云多端”,是将业务尽可能多的往后端迁移。前端主要负责界面展示,交互信息采集等内容。

后台切换

为了测试和试用,后台需要部署在不同的服务器上。前端,需要保存好几个后台域名地址,并且提供切换方式。常用的方式,比如,连续点击图标或者标题什么的多次,在弹出框中输入密码,进入一个调试页面,进行环境切换。
这种方式运行很好,真正的普通用户能够发现这个调试页面的很少,对测试人员也很方便。
但是这种方式真的好吗?更好的方法,是将环境切换这部分工作迁移到后端,专门提供一层,来完成这个工作。这一层职责单一一点,一旦上线,基本不用改变。各种前端设备,只要连接这个固定后端就可以了,切换工作,在这个切换层来实现就可以了。

BFF

BFF(Backend for Frontends,为前端而存在的后端)
后端技术一旦确定,一般是稳定的,比如现在比较多的就是Java。

网关层

这一层应该成为前后端的界面层。各种后台服务,可以做成各种openAPI,由网关层统一管理。BFF层来统一接入,非常合适。对网关层来说,BFF只是一个内部客户而已,最多给一些特殊权限,很好管理。
现在由各种前端直接连网关层是非常不合适的,用起来的感觉实在太差。有些恶心的,在手机端都要维护一个自己的数据库,那要后台干什么呢?

第三层,技术上的大前端

大前端的技术一直在发展,从WebView到ReactNative再到现在的Flutter。目前的Flutter,可以做为一种大前端的技术选择来用。

上一篇下一篇

猜你喜欢

热点阅读