前端和后端的区别,与后端统一化的理论基础 思考

打字机 输入,输出   (规则26个字母)

计算机  输入,输出(规则01)

软件 输入,输出(软件的业务规则)

web系统软件 (web化的业务规则-细粒度受控)

数据库系统软件(SQL化的业务规则-粗粒度受控)

web系统 前端UI和逻辑+后端逻辑和数据

数据系统 前端SQL语句编辑器+后端逻辑和数据

前后端的区别

分工不同

前端,独立实现部分 业务规则(非安全,如,一次只能看10条数据),配合后端实现部分(安全,如,只可看指定数据)

后端,安全的实现业务规则的部分,其他部分不影响业务核心逻辑的,可不由其实现

关注的粒度不同

数据 从始化 前端输入 后端存储 后端查询 前端展现 ,数据在 前后端 的形态 可能不同,或即使形态相同,但被前后端,关注提取使用的字段也不同

对于2个业务不同的web系统

传统做法

Web1系统 定制的UI+ 定制的后端(抽象为受控的业务实体)+定制设计的数据库

Web2系统 定制的UI+定制的后端(抽象为受控的业务实体)+定制设计的数据库

新的做法

web1系统 定制的UI+统一的后端(抽象为受控的资源实体)+定制设计的数据库

web2系统 定制的UI+统一的后端(抽象为受控的资源实体)+定制设计的数据库

具体实现

以restful 规范 前端,后端的调用

前端要承担restful概念之外的 动作型 业务操作的 分解,把 具体的业务操作 转为 一个或多个rest Api调用

后端 只以 受控 资源模型,来抽象,包括 oathAPI+restful API

带来的好处

统一的后端 可以统一 一次实现,持续优化,架构上各系统的 后端 理论上 互相没有关系的,微服务

带来的坏处

架构上 各  当系统的业务有关联时,前端 要 调取 多个后端的API,加上 时间顺序,数据依赖,数据聚合显示 等因素,会 导致前端 无法实现,会 实现代价太大,或 有性能问题。

改进的可能

架构上带来的前端复杂问题,可以 通过  在后端增加 API网关(统一通用型,或定制型)

是否问题归零,回到原点

以上问题都是 以 SQL数据库做前提的后台,因为它 没有提供 http 化的查询接口,和 角色权限 管理

但如果一个 noSQL 数据库,提供了这样的 功能,架构上 演进到 定制型Apl网关,是不是 就和现在的做法相同,问题是否回到原点。

问题根源

桌面型 软件C/S软件 本身 就可以没有后端,也可以 带后端;但web型B/S系统,受浏览器 和 http 无状态的限制,只能采用前端+后端模式。

回答前一个问题,如果假设的 noSQL 数据存在,则形态或架构上问题归零,但使用开发的方便性,友好性,抽象层次不一致,

首先 该no-SQL 数据库 对外提供的API接口,是否基于restful的资源操作模型,还是基于 数据存储的模型,其次 其 权限和 角色模型 是否 能结合 oauth,还是 基于传统数据存储安全的模型,如果答案都是 是,二者确实无本质区别,否则 抽象层次来说 偏向前端可直接使用的restful 资源操纵模型 更高,受安全控来说,oauth更容易使用。


定性总结

可以说,是一次,基于某一层次抽象和封装,简化BS开发工作量和开发流程的尝试

形态可以是 通用的受控资源读写后端 (PC上的B/S模式) 或 代码级别的工具组件(Android上的B/S模式)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容