前后端分离微服务架构如何设计

前后端分离微服务架构如何设计,第1张

前端

前端开发人员专注业务的页面呈现,非常注重用户体验度,也是与各种角色打交道最多的。

比如:

一般前端工作包括六个部分:

后端

如果前后端职责划分很清楚的话,后端更多开发工作在于业务接口设计、业务逻辑处理以及数据的持久化存储,并提供详细的接口设计文档给前端开发人员使用。

一般后端工作包括五个部分:

1、与产品经理对接需求

2、业务 API 接口开发:根据根据需求文档进行业务接口开发

4、接口对接:与前端开发人员接口对接

5、前后端联调测试:包括页面展示以及接口数据

6、bug修复

前端开发技术栈

h5 、 css 、 nodejs / vue / angular / react 、 webpack 、 hbuilder / vscode 等

后端开发技术栈

SpringCloud / Springboot 、 SpringMVC 、 ORM 框架、数据库、缓存框架( Redis , Codis , Memcached 等),大数据框架( Hadoop / Spark / hive / Hbase / Storm / ES / Kafka )等等

技术选型

最好选择成熟稳定,易上手、开发效率高的技术,因为实际项目开发时间是有限的,开发人员没有多少精力放在学习和深度研究技术上。

数据格式

后端开发提供接口设计文档,详细写明每个接口的请求地址、请求参数、响应参数等等;一般采用 REST 风格以 JSON 格式提供数据。

接口设计

一个接口设计的好坏,直接影响到前后端的一些沟通协调问题。

依笔者的经验来看,如果后端接口不稳定,会导致前端开发人员反复修改页面数据呈现。常常出现后端开发说这是前端问题,前端开发说是后端问题,来回扯皮,沟通效率低下。

接口容量问题

一个接口的业务容量大小,往往代表前后端工作量的大小。

如果一个接口的业务容量太小,前端需要分阶段处理的事情就多,尤其是对多个接口 Ajax 异步处理;

如果一个接口的业务容量太大,那么业务耦合性高,万一需求变更,后端程序改动大,不利于程序的扩展。

一、前后端分离的思想要转变

不能老是按照传统WEB( js/h5/css/ 后端代码放在一个工程)开发思维去看待前后端分离

二、沟通成本问题

以前传统 WEB 开发,开发人员从需求到设计到开发基本上是一个人。

而前后端分离后,前端只负责页面呈现,后端更注重业务逻辑处理以及数据的持久化,双发都有自己的侧重点,工作量上有私心。

三、组织结构问题

康威定律

第一定律: Communication dictates design (组织沟通方式会通过系统设计表达出来)

第二定律: There is never enough time to do something right, but there is always enough time to do it over (时间再多一件事情也不可能做得美,但总有时间做完一件事情)

第三定律 : There is a homomorphism from the linear graph of a system to the linear graph of its design organization (线型系统和线型组织架构间有潜在的异质同态特性)

第四定律: The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems (大的系统组织总是比小系统更倾向于分解)

康威定律说明以下几点

四、部署及监控运维

前后端分离后,拆分的服务会带来线上部署以及如何监控运维的复杂性。

总体来说,前后分离所带来的好处还是更明显的。一个成熟的前后端分离的团队,文档化约定,前后端职责分离、接口约定都是做得比较好的

DW

数据库

Hbuilder

建筑工人

数据库 [ shù jù kù ]

生词本

基本释义

[ shù jù kù ]

存放在计算机存储器中,按照一定格式编成的相互关联的各种数据的集合,供用户迅速有效地进行数据处理。

百科释义

前端开发的编译器在选择上还是很多的。在学校里,老师主要讲三个前端开发软件:

1、WebStorm

帮助编写HTML、CSS、Less、Sass和Stylus代码,并且支持Nodejs和主流框架,如React、Angular、 Vuejs、Meteor等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。但是付费软件。

2、IntelliJ idea

idea是学校老师教得最多的一款软件,从学Java开始,除了eclipse和myeclipse之外,学校老师用的最广泛的Java编译器就是idea,而idea也能进行前端项目的开发,idea是我用得最熟的一个编译软件。像一个完整的前端网站,配置好jdk,tomcat,maven,数据库之后就可以在idea上进行搭建了。

3Visual Studio Code

简称VScode,前端开发时期学习的第一款软件,当时学VScode的时候上的网课,老师用插件的时候一个没跟上,就跟不上了。总体感觉下来是插件库很丰富,而且内存占用不大,目前我身边用VScode的人是最多的。

下面是我在实习中接触到的前端开发工具:

notepad++

页面很简单,乍一看像是一个记事本,它也确实可以当记事本用。有很多特色插件可以使用,支持多种编程语言的语法高亮显示,具有代码折叠功能。

2、HBuilderX

HBuilderX是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。HBuilder的编写用到了Java、C、Web和Ruby。HBuilder本身主体是由Java编写。是HBuilder下一代版本,具有轻便、适合vue框架的特点。

以上就是关于前后端分离微服务架构如何设计全部的内容,包括:前后端分离微服务架构如何设计、DW和Hbuilder的区别、前端开发常用哪些工具软件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9515090.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存