【项目实战典型案例】05.前后端分离的好处(发送调查问卷)

news2024/11/17 4:38:20

目录

  • 一、背景
  • 二、思路
  • 三、过程
    • 1、主要的业务逻辑
    • 2、解决问题的思路
  • 四、总结
  • 五、面向对象的好处

一、背景

  以下流程图是给用户发送调查问的整体流程,将不必要的业务逻辑放到前端进行处理。这样导致逻辑混乱难以维护。前后端分离的其中一个目的是将功能的样式放在了前端将功能的业务逻辑放到了后端来处理。
在这里插入图片描述

二、思路

  明确业务逻辑,对于业务逻辑的明确可以使用UML图的方式进行梳理和整理,这样我们对宏观就有了一个了解,一张图胜过千言万语。梳理前端的功能样式和功能样式对应的后端接口。把需要的运算和复杂复杂处理的业务逻辑放到后端,对于数据的渲染传给前端直接显示即可。不需要接收到消息之后在做一些复杂的运算逻辑了。

三、过程

1、主要的业务逻辑

1.在章节推送页面,查询三个执行的章节颗粒会调用后端接口保存规则在redis中。
2.当章节颗粒执行的倒计时进入到10时,前端再调用后端接口获取该章节颗粒的激励配置,并返回个给前端。
3.当章节颗粒结束时判断是否配置发送调查问卷如果配置了,就调用后端发送调查问卷的接口发送问卷,之后继续该流程,执行下一个章节颗粒。如果没有配置则继续该流程,执行下一个章节颗粒。

2、解决问题的思路

  1.将及时器放入到后端:这样的话在后端进行倒计时到十秒的时候调用获取激励规则,计时器到零秒时发送调查问卷。这样的话减少了前端的逻辑判断,将逻辑放入到后端进行。并且减少了入口。

   2.取消不必要的循环,在流程图上去除循环,没有必要进行调用。
在这里插入图片描述

四、总结

将同一功能的样式和逻辑计算进行了拆解,这样的好处:
1.提高了开发效率,前后端可以有对应的人员进行开发。
2.增强了代码的可维护性,减少了样式和逻辑的耦合。解决问题方便定位。
3.提高了复用性,适应能力强同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端。
体现了面向对象的思想。高扩充、高复用、低成本维护。

五、面向对象的好处

  1. 模块化和可维护性:面向对象的编程将程序分解为多个独立的对象,每个对象都有自己的属性和方法。这种模块化的设计使得代码更加可维护和可扩展,可以通过修改或替换单个对象来改变程序的行为,而不必修改整个程序。
  2. 封装和信息隐藏:面向对象的编程通过封装将数据和行为组合在一起,形成一个独立的对象。对象对外部隐藏了内部的实现细节,只提供有限的接口供外部访问。这种信息隐藏的机制可以保护数据的完整性和安全性,并且提高了代码的可复用性。
  3. 继承和代码重用:面向对象的编程支持继承机制,可以通过继承一个已有的类来创建一个新的类,并且可以重用父类的属性和方法。这种代码重用的机制可以减少重复编写代码的工作量,提高代码的可维护性和可扩展性。
  4. 多态和灵活性:面向对象的编程支持多态机制,即同一个方法可以根据不同的对象调用而表现出不同的行为。这种灵活性使得程序可以根据实际情况进行动态的适应和扩展,提高了代码的灵活性和可扩展性。
  5. 抽象和概念模型:面向对象的编程通过抽象将真实世界的概念和实体转化为程序中的类和对象。这种抽象的过程使得程序更贴近问题领域的概念模型,提高了程序的可读性和可理解性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/929064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

go语言学习之有关变量的知识

文章目录 变量的学习1.变量的使用步骤2.变量的注意事项3.变量使用的三种方式:4.程序中 号的使用5.变量的数据类型1)int数据类型2)小数类型浮点型3)**字符类型**4)**字符串(String)类型**5&…

excel 分组排序

excel中会遇到对不同分组数据进行排序,比如对于不同班级里的学生按照分数高低进行升序排序,可以采用如下公式 SUMPRODUCT((A$2:A$12A2)*(C$2:C$12>C2))1 如果需要 进行降序排序,将公式中的大于号替换为小于号即可

Java 体系性能优化工具

Java 体系性能优化 目录概述需求: 设计思路实现思路分析1.oom 异常来说:2.visualvm3.Arthas4.JProfiler (全面)5.jmeter 特有 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect…

1014. 最佳观光组合;1220. 统计元音字母序列的数目;1011. 在 D 天内送达包裹的能力​

1014. 最佳观光组合 核心思想:枚举优化,简单想法就是枚举i在同时枚举j,但是这样做时间复杂度太高,那么我们就要想办法优化它,values[i] values[j] i - j可以分为values[i] i,values[j] - j两部分&#…

爬虫实战之使用 Python 的 Scrapy 库开发网络爬虫详解

关键词 - Python, Scrapy, 网络爬虫 在信息爆炸时代,我们每天都要面对海量的数据和信息。有时候我们需要从互联网上获取特定的数据来进行分析和应用。今天我将向大家介绍如何使用 Python 的 Scrapy 库进行网络爬虫,获取所需数据。 1. Scrapy 简介 1.1 …

Jmeter压测测试

Jmeter安装启动 1、Jmeter下载安装 模拟真正的大量并发请求 下载Jmeter:Apache JMeter - Download Apache JMeter 解压apache-jmeter-5.4.1.zip文件至目录下(不要有空格和中文) 2、配置JMETER_HOME 我的电脑----》属性----》高级----》环…

CleanMyMac2024永久版Mac清理工具

Mac电脑作为相对封闭的一个系统,它会中毒吗?如果有一天Mac电脑产生了疑似中毒或者遭到恶意不知名攻击的现象,那又应该如何从容应对呢?这些问题都是小编使用Mac系统一段时间后产生的疑惑,通过一番搜索研究,小…

若依移动端Ruoyi-App 入门

后端项目运行 运行报错 Error creating bean with name sysConfigServiceImpl: Invocation of init method failed 数据库创建了。 代码连接数据库地方了也匹配上了。但是还是报错。 分析 : 想起来我电脑从来没有安装过redis 下载安装redis到windows 链接&…

Vue2向Vue3过度核心技术watch侦听器

目录 1 watch侦听器1.1 作用:1.2 语法:1.3 侦听器代码准备 2 翻译案例-代码实现3 watch侦听器3.1 语法3.2 需求3.3 代码实现3.4 总结 1 watch侦听器 1.1 作用: ​ 监视数据变化,执行一些业务逻辑或异步操作 1.2 语法&#xff1a…

Spring与Mybatis集成且Aop整合

目录 一、集成 1.1 集成的概述 1.2 集成的优点 1.3 代码示例 二、整合 2.1 整合概述 2.2 整合进行分页 一、集成 1.1 集成的概述 集成是指将不同的组件、部分或系统组合在一起,以形成一个整体功能完整的解决方案。它是通过连接、交互和协调组件之间的关系来实…

CSS实现内凹圆角,从而实现圆角边框

1、代码 <!DOCTYPE html> <html><head><style>.uu {position: relative;width: 400px;height: 300px;}img {width: 100%;height: 100%;z-index: 1;}.box_right_top {background-image: radial-gradient(circle at left bottom, transparent 50px, whi…

vue ui 创建项目没有反应

问题 cmd中输入 vue ui 没有反应 解决办法 vue ui命令需要vue3.0以上的版本才可以 1、查看当前版本 vue --version vue版本在3.0以下是没有ui命令的 2、查看版本所拥有的命令 vue -h 3、卸载之前版本的vue npm uninstall vue-cli -g 卸载完成&#xff0c;检查是否已经…

Notepad++正则匹配

Notepad正则匹配 Notepad正则表达式字符串最长不能超过69个字符一、支持的语法二、正则表达式诀窍三、案例3.1、匹配时间戳3.2、提取指定字符串3.3、提取单词3.4、查找中文字符 四、示例4.1、示例1&#xff1a;把含目标字符串及之后的字符串全部替换4.2、示例2&#xff1a;4.3、…

WPF读取dicom序列:实现上一帧、下一帧、自动播放、暂停

一、整体设计概况 创建WPF程序使用.Net Framework4.8定义Image控件展示图像增加标签展示dcm文件信息规划按钮触发对应的事件:上一帧、下一帧、自动播放、暂停、缩放、播放速率二、页面展示 三、代码逻辑分析 Windows窗体加载Loaded事件:生成初始图像信息Windows窗体加载Mous…

搭建产品知识库:正确构建和使用产品知识库,做好知识沉淀

对于产品来说&#xff0c;通过设立产品知识库将用户所需要的产品知识进行汇总和整理&#xff0c;并且针对用户所急需解决的问题提供相关解决方案&#xff0c;这就是搭建产品知识库最大的价值。 产品知识库的搭建方式其实很简单&#xff0c;只需要借助HelpLook将优质的内容和解决…

Java线程 - 详解(1)

一&#xff0c;创建线程 方法一&#xff1a;继承Thread类 class MyThread extends Thread{Overridepublic void run() {System.out.println("线程1");} }public class Test {public static void main(String[] args) {MyThread myThread new MyThread();myThread.…

基于YOLOv8模型和DarkFace数据集的黑夜人脸检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型和DarkFace数据集的黑夜人脸检测系统可用于日常生活中检测与定位黑夜下的人脸&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目…

TCP--半连接队列和全连接队列

原文地址&#xff1a;https://plantegg.github.io/2020/04/07/%E5%B0%B1%E6%98%AF%E8%A6%81%E4%BD%A0%E6%87%82TCP–%E5%8D%8A%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97%E5%92%8C%E5%85%A8%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97–%E9%98%BF%E9%87%8C%E6%8A%80%E6%9C%AF%E5%85%AC%E…

分布式事务篇-2.3 Seata事务模式

文章目录 前言一、事务模式 是什么&#xff1f;二、Seata中的事务模式支持&#xff1a;2.1 AT 模式&#xff08;自动补偿型事务&#xff09;&#xff1a;2.1.1 AT 模型&#xff1a;2.1.2 AT 写隔离&#xff1a;2.1.3 AT 读隔离&#xff1a;2.1.3 AT 优缺点&#xff1a; 2.2 TCC…

图的应用(考研)

一、最小生成树 性质&#xff1a; &#xff08;1&#xff09;不唯一&#xff08;2&#xff09;权值之和是唯一的&#xff08;3&#xff09;删去一条边会变成非连通图&#xff0c;增加一条边会产生回路&#xff08;4&#xff09;最小生成树的边数为顶点数减一 1、Prim算法 m…