正文
由于最近没有合适的工作,闲赋在家,所以瞎逼合计了一套技术规划,可以一起讨论,由于没有团队和项目,所以从大的面上来说。
当下业内大部分团队都应该有以下几个问题:
-
多端爆发的情况下,每一个端都需要大量的人员来开发和维护,但是呢,大部分时间又没有那么多事情同时要做。
-
那么多端,团队里的技术栈也乱的要死,对积累和维护也造成了很多困扰。
-
由于端多,不同团队来负责,整个体验每一个端,多多少不一样。
-
前端跟后端沟通时,为了API的格式和返回的数据,纠结到死。
-
后端同学大量的时间其实都在整API这个层面的东西
这都21世纪了,有没有好办法呢?
Node.js的爆发,带来了几个好处,前端可以深入到各个层面来开发。所以我们可以考虑以下2个方案来实现。
多端融合
先上个目前的现状图
当下结构图
大量的精力和时间都浪费在不同端的维护上,但是观看上面的图,我们又发现一个共同点,他们都拥有一个自己的组件库,而且根据实际情况来看,其实总会有一部分组件是可以达到复用的效果。
所以我们把方案处理成这样是不是就是一个ok的效果。
多端融合
不管下游是什么,上游都一致,2个层结合通过一个转译层。转译层,可以是一个多个转译单元,每一个对应一个下游的框架/语言。
好处是后期组件这块可以做很多事情。
不过这么玩又会有一个问题,后期大量的精力会放在转译单元维护上,目前看来应该是正收益,实际需要有业务场景支持来看。
为啥用上面的方案呢?有没有其他方案呢?
先说其他方案,除了上面的还有以下几种:
1.套壳,cordova/phonegap就是这种方案,完全依赖于webview,但是目前webview性能又搓的可以,所以不适合复杂交互的。
2.在客户端层面做一套语法映射的框架,成本略高。
因为对于客户端来说,其实只是需要一套执行的代码,所以不应该把工程层面的东西转嫁到端上来做,增加端这个层面的成本。
后端延伸
谈到性能优化,现在其实很少提雅虎军规了,为啥呢?因为雅虎军规其实已经足够完善,或者有一部分已经过时了,但是呢纯前端的方案又很有限。怎么办呢?需要后端帮忙做一部分事情,但是对后端来说呢,为啥要帮你干呢?