前后端分离的开发模型和架构演进

其实对于很多团队和公司来说,前后端分离的出发点是有些问题的。如果业务没有梳理清楚,就要大一统的方案,显然这个方案是需要反复迭代,这个迭代的代价尚可忽略,但是对于流程的改动影响范围是很大的。所以解决问题也需要聚焦,优先解决见效快,对当前工作有显著改善的部分。

一个系统如果从零到一,基本会是一个如下的大体架构方式:

所以在这里我们的目标很简单,系统像个车轮能够运转起来,至于系统的高可用和性能,这个在目前来看不是紧急优先的,而前后端分离的事情现在是无法支持的。

第二阶段是一个基础的重构,看起来是一种割肉的感觉。 因为我们要对重逻辑做裁剪,否则前后端分离无从谈起。所以在此我提出一个基本的概念,那就是本地前端。这个本地前端是一种面向功能的实现,没有考虑更多的体验和互动性,后端逻辑和前端逻辑要华清界限,最直接的界限就是全部API化,后端逻辑全部提供为API的服务形式,和本地前端的交互还是通过类似MTV的方式来实现,但是view层里面不存在核心的逻辑了,只负责跳转和数据转发。

到了这个阶段,其实系统已经有了一些良好的基础,那么我们就可以考虑接入一个大而全的平台了,这里的前端就是平台前端,这个平台前端可以是统一规划的技术栈或者是全新的系统,这里对接的代价很低,一来已经存在一个基本原型,只能比它更好,二来之前的对接都是API,我们可以在完全不改动已有逻辑的情况下做平台前端的对接。

这个阶段,你可以理解为混合跑的阶段,绝对不会因为某个技术而隔掉其他技术的命。

接下来才开始有意思,那就是后端逻辑的垂直拆分。我们可以根据通用和业务逻辑来拆分为多个逻辑层。比如权限是通用的逻辑,日志是通用的逻辑,安装部署和特有的逻辑。

其实到了这里,我们的目标还不够明显,显然很多工作还是需要明确,首先这么做的意义是什么,我们可以在代码层等来隔离,但是逻辑间的调用和关联还是没有完全降低,怎么改进,一个思路就是模块化,比如我要建设自己的业务系统,权限管理每次都得重新建设,实在是麻烦,如果能够类似docker的模板容器化这个工作,我们的业务逻辑就是一种类似插件的方式,那么服务的可配置和管理型会大大增强。

所以到了这个阶段之后,逻辑的部分还是API来交互,在高可用方面我们就可以考虑一些接口服务,比如RESTful API来完善了。

至于后续的接口服务的高可用等等,这个就是一套完整的框架和系统来支撑了。前端也可以把平台前端统一化了。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2018-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序人生 阅读快乐

Android群英传(套装共2册)

本书从由总到分,让读者从整体上把握Android体系结构,融入“群英传”这一故事情节,针对各个知识点进行分类阐述,并结合一线实际开发经验和最新的Android ...

10120
来自专栏云计算D1net

云原生机制的三个核心思想及其未来之路

摆脱临时性自动化方案之定位,发挥优势以实现可预测功能。 ? 您能否以每周为单位向客户发布各类新功能?甚至进一步达到以每天乃至每小时为单位?新晋开发人员能否在上班...

27340
来自专栏frankzheng的专栏

浅谈系统架构的几个方面

今天心血来潮,突然想起以前对于架构设计的理解,也是多年来总结的一个结果,分享给大家,欢迎拍砖!

19140
来自专栏ATYUN订阅号

谷歌为G Suite添加NLP功能,提高搜索效率并推荐相关内

对于G Suite客户来说,这是个好消息:谷歌正在向Docs,Sheets和Slides工作流注入一些自然语言处理(NLP)。The Mountain View...

13030
来自专栏资深Tester

有关测试流程中的问题

最近在带一个学生,是一个超级认真、努力的学生,布置的作业和学习点都会认真去完成,我能感受到他是在尽心尽力地去做好,从提出的问题中就能看到这个变化,由以前的很外行...

21830
来自专栏互联网数据官iCDO

【转载】搜索引擎来路关键词的挖掘:百度统计的高级分析报告导出获取来源关键词

简单的说就是买百度统计的高级分析,然后用关键词维度组合其他访问属性导出报告。 n年没有接触SEO了,最近发现现在的搜索引擎优化已经和以前完全不一样了。 自从各大...

37850
来自专栏后端技术探索

58同城沈剑:好的架构源于不停地衍变,而非设计

对很多创业公司而言,很难在初期就预估到流量十倍、百倍以及千倍以后网站架构会是什么样的一个状况。同时,如果系统初期就设计一个千万级并发的流量架构,很难有公司可以支...

9710
来自专栏新智元

【干货】谷歌软件工程技术实践总结:软件开发、管理和人员调配(20PDF)

【新智元导读】作者 Fergus Henderson已在Google工作了10年以上,拥有超过15年的商业类软件的行业经验。本文梳理并介绍了Google 软件开...

59570
来自专栏EAWorld

普元DevOps5.2版本新特性发布

伴随新版本的发布,我们团队也对这次迭代做了些回顾,有值得分享的新特性与设计,也有一些需加强的能力,借此与大家分享。

35340
来自专栏云计算D1net

混合云的性能管理状态

混合云的性能管理 如今,IT管理员在如何运行关键业务的工作负载方面比以往任何时候都有着更多的选择。其中包括物理,虚拟,本地,云计算,或一些组合。这就是为什么找...

33550

扫码关注云+社区

领取腾讯云代金券