案例05-将不必要的逻辑放到前端(发送调查问卷)

一:背景介绍

本篇博客书写的意义是警示大家不必把不必要的逻辑放到前端。
明确前后端分离的意义。

背景

下面的主要逻辑是:
1、章节推送页面,查询三个执行的章节颗粒会调用后端接口保存规则到redis中。
2、当章节颗粒执行的倒计时进入10时,前端在调用后端接口获取该章节颗粒的激励配置,返回给前端。
3、颗粒结束后判断是否配置发送调查问卷,如果配置了,就直接调用后端发送调查文件接口发送问卷,如果没有配置就继续该流程,执行下一个章节颗粒。
在这里插入图片描述

二:思路&方案

重大问题:

1、前端写了多重循环
2、不必要的逻辑放到前端进行处理,导致逻辑难以维护。

解决办法

1、取消不必要的循环,在流程图上去除循环,没有必要进行调用。
2、将计时器放到后端:在后端进行倒计时到十秒的时候调用获取激励规则,计时器到零秒时发送调查问卷。这样的话减少了前端的逻辑判断,将逻辑放入到后端进行。并且减少了入口。

在这里插入图片描述

优点:

1、单入单出,方便维护。
2、职责分明,前端主要进行界面渲染工作,后端进行逻辑处理。

三:总结

边界清晰
1、后端是处理业务的,前端是渲染界面的。明确职责才能干事。
2、对于一个功能模块来说前端调用后端的次数越少越好,减少前端的循环调用后端的接口进行复杂的逻辑处理。

大部分逻辑尽量不要写在前端,是为了遵循良好的软件架构和开发原则,确保系统的可维护性、安全性和扩展性。以下是一些理由:

安全性: 将关键业务逻辑放在后端可以更好地控制数据的安全性。前端代码可以被用户轻易查看和修改,因此在前端实现核心业务逻辑可能会增加风险,导致数据篡改、安全漏洞等问题。

数据一致性: 在后端处理数据可以保证数据的一致性。当业务逻辑分散在前端时,可能会导致不同的客户端对同一数据做出不同的修改,从而破坏数据的一致性。

易维护性: 后端代码更容易维护,因为你只需要在服务器上更新一处逻辑,而不是在各个前端客户端更新。这有助于降低维护成本和风险。

扩展性: 将逻辑放在后端可以更容易地进行系统扩展。当你需要添加新功能、修改业务规则时,只需在后端进行更改,而不必修改多个前端应用。

代码复用: 在后端实现逻辑可以促进代码复用。不同的前端应用可以共享相同的后端逻辑,避免重复编写相似的代码。

性能优化: 后端可以更好地优化数据库查询、数据处理和计算。将这些处理放在前端可能会导致性能问题和资源浪费。

业务逻辑保密: 如果将核心业务逻辑放在后端,可以更好地保护业务秘密和商业机密,避免让竞争对手或恶意用户轻易获得关键信息。

尽管如此,前端仍然需要一些逻辑,如用户界面交互、验证输入、展示数据等。但是,它们应该是针对用户界面和用户体验的逻辑,而不是核心业务逻辑。将大部分核心业务逻辑放在后端,可以确保系统的稳定性、安全性和可维护性。

当涉及到将逻辑放在后端或前端时,还有一些值得考虑的方面:

响应时间和用户体验: 尽管将核心业务逻辑放在后端可以提高数据安全性和一致性,但也需要注意用户体验。某些操作可能需要与服务器进行往返通信,增加了响应时间。在某些情况下,可以在前端执行某些逻辑以提高响应速度,但需要平衡好安全性和用户体验。

分布式系统和微服务架构: 在分布式系统或微服务架构中,将逻辑放在后端可能更为重要。不同的服务可以独立开发、测试和部署,从而实现更好的扩展性和灵活性。

前端框架和技术: 不同的前端框架和技术有不同的优势和限制。有些前端框架提供了更强大的状态管理和数据处理能力,允许一些逻辑放在前端。然而,这仍然需要注意数据安全和一致性的问题。

移动应用和桌面应用: 对于移动应用和桌面应用,将逻辑放在后端更为重要,因为这些应用相对容易受到逆向工程和篡改。

云服务: 在使用云服务时,一些逻辑可能被外部服务处理,例如服务器端的数据验证和处理。这可能会影响你在前端和后端之间分配逻辑的决策。

综上所述,选择将逻辑放在前端还是后端取决于具体情况。重要的是要权衡不同的需求,如安全性、用户体验、性能等,并根据你的应用架构和业务需求做出明智的决策。在任何情况下,保持清晰的架构和适当的分层可以帮助你更好地管理逻辑并实现系统的目标。

为什么要进行前后端分离???

前后端分离是一种在软件开发中的架构模式,它将应用程序的前端(用户界面)和后端(数据处理和业务逻辑)分开开发和部署。这种分离的方式带来了许多优势,其中一些包括:

并行开发: 前后端分离允许前端和后端开发团队同时进行工作,无需等待彼此完成。这可以加快整个开发过程,从而提高项目的交付效率。

可维护性: 前后端分离使得前端和后端的代码相对独立,这降低了代码的耦合性。这样一来,如果需要对其中一个部分进行更改或修复,可以降低影响范围,减少可能引入的错误。

适应多平台: 通过将业务逻辑与用户界面分开,可以更轻松地将应用程序扩展到不同的平台和设备,如移动应用、桌面应用和Web应用。

技术栈灵活性: 前后端分离允许使用不同的技术栈来构建前端和后端部分。这意味着可以选择最适合每个部分的工具和技术,从而在技术选型上更具灵活性。

性能优化: 前后端分离允许前端和后端部署在不同的服务器上,从而优化资源分配和负载均衡,提高应用程序的性能和稳定性。

团队协作: 不同的团队可以专注于自己擅长的领域,如设计团队可以专注于用户界面,后端团队可以专注于业务逻辑。这样的分工可以提高团队的协作效率。

重用性: 通过提供统一的API接口,可以使多个前端应用共享相同的后端逻辑,从而提高代码的重用性。

总之,前后端分离有助于提高开发效率、降低维护成本、提升应用性能,并使团队能够更好地协作和灵活地应对不同的需求和平台。然而,也需要注意在分离过程中需要合理规划好通信方式、接口设计等,以确保整个应用的稳定性和一致性。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

balance…

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值