一、设计原则之前后端分离

传统的 Web 应用开发中,大多数的程序员会将浏览器作为前后端的分界线 

浏览器用户进行页面展示部分称之为前端,而将运行服务器,为前端提供业务逻辑数据准备的所有代码称为后端 

由于前后端分离这个概念相对来说刚出现不久,很多人都是只闻其声,不见其形,所以可能会对它产生一些误解,误以为前后端分离只是一种 We应用开发模式,只要在 We应用开发期进行了前后端开发工作的分工就是前后端分离 

其实前后端分离不只是开发模式,而是 Web 应用的一种架构模式 

开发阶段,前后端工程师约定好数据交互接口实现并行开发测试 

运行阶段前后端分离模式需要对 Web 应用进行分离部署,前后端之前使用 HTTP 或其他协议进行交互请求

前后端分离原则简单来讲就是前端和后端的代码分离,也就是技术上做分离 

推荐的模式是直接采用物理分离的方式部署,进一步进行更彻底的分离 

不要继续使用以前的服务端模板技术比如 JSP,把 Java JS HTML CSS 都堆在一个页面里,稍复杂的页面就无法维护 

这种分离模式的好处: 

前后端分离意味着前后端之间使用 JSON 来交流两个开发团队之间使用 API 作为契约进行交互 

从此,后端使用的技术栈不影响前端 

前后端分离并非仅仅只是前后端开发的分工,而是在开发期进行代码存放分离、前后端开发职责分离,前后端进行独立测试;在运行期进行应用部署分离,前后端之间通过 HTTP 请求进行通信 

前后端分离的开发模式与传统模式相比,能为我们提升开发效率、增强代码可维护性,让我们有规划地打造一个前后端并重的精益开发团队更好地应对越来越复杂多变的 Web 应用开发需求 

前后端分离的核心后台提供数据前端负责显示 

二、设计原则版本控制

在团队的内部,尤其是 API 设计优先的微服务架构中,接口的版本管理显得尤其重要 

服务的一个主要优势是,允许服务独立地演变 

考虑到微服务调用其他服务,这种独立性需要引起高度注意,不能在 API 中制造破坏性更改 

接纳更改的最简单方法是绝不破坏 API 

如果遵循稳健性原则,而且两端都保守地发送数据,慷慨地接收数据,那么可能很长一段时间都不需要执行破坏性更改 

当最终发生破坏性更改时,可以选择构建一个完全不同服务并不断退役原始服务,原因可能是领域模型已进化,而且一种更好抽象更有意义 

如果对现有服务执行破坏性的 API 更改,应决定如何管理这些更改: 

确定了困难部分后,如何在 API 中反映该版本是更容易解决问题

通常可通过 3 种方式处理 REST 资源版本控制: 

版本添加到 URI 中,这是指定版本的最简单方法。它的优点是非常容易理解,容易在微服务应用构建服务时实现,与 API 浏览工具命令工具兼容。如果将版本放在 URI 中,版本应该应用于整个应用程序,所以使用 /api/v1/accounts 而不是 /api/account/v

可以添加自定义请求标头来表明 API 版本。在将流量路由到特定后端实例时,路由器和其他基础架构可能会考虑使用自定义标头。但是,此机制不容易使用,原因与 Accept 标头不容易使用相同。此外,它是一个仅适用于应用程序自定义标头,这意味着使用者需要学习如何使用它 

Accept 标头是一个定义版本的明显位置,但它是最难测试的地方之一。URI 很容易指定替换,但指定 HTTP 标头需要更详细的 API 和命令行调用 

 

参考资料:《微服务架构实战》—— 张锋 

一  叶  知  秋,奥  妙  玄  心 

原文地址:https://blog.csdn.net/weixin_43551213/article/details/134730386

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_46752.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注