可测试,可维护,可移植:上位机软件分层设计的重要性

news/2024/10/5 3:23:34

互联网中,软件工程师岗位会分前端工程师,后端工程师。这是由于互联网软件规模庞大,从业人员众多。前后端分别根据各自需求发展不一样的技术栈。那么上位机软件呢?它规模小,通常一个人就能开发一个项目。它还有必要分前后端吗?
有必要。本文从三个方面论述。分别是可测试,可维护,可移植。
可测试
软件黑盒测试更普遍,但很难覆盖所有应用场景。于是有了接口测试、模块化测试以及单元测试。都是通过降低测试对象的复杂度,来实现更全面的测试。那么将上位机软件分为前后端、甚至服务模块、下位机对接模块等。并做好接口划分,也就提升了软件的可测试性。从而提升质量。
可维护
低耦合的代码更容易修改。模块内部的函数变动不会影响到模块外。相反,前后端混合,页面一个控件的改动,都要去修改底层通讯模块。这样只会提升维护难度、降低软件可测试性,也就降低软件质量。
可移植
分为前后端,那么可以单独复用后端或前端代码。例如:新项目里,下位机不变,通讯协议不变。只是页面元素、布局改变。那么不修改后端代码。新前端按固定接口写好,就能直接配合使用了。
以上,就是从三个方面论述了上位机软件分层设计的必要。

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

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

相关文章

[网鼎杯 2020 朱雀组]phpweb

仔细地话可以看到这题每个一段时间就会刷新一次页面,而且后面还会有一个时间,就很可疑,抓个包试试果然多了几个参数func=date&p=Y-m-d+h%3Ai%3As+a 经过搜索 发现这是一个函数(用来显示时间,也就证实了前面地图片为什么会出现时间地原因) 于是试着就修改函数和参数来…

【漏洞分享】2018年-2024年HVV 6000+个漏洞 POC 合集分享

此份poc 集成了Zabbix、用友、通达、Wordpress、Thinkcmf、Weblogic、Tomcat等 下载链接: 链接: https://pan.quark.cn/s/1cd7d8607b8a看着就真的看着,不学就真的5

【工具推荐】FindEverything(最新版) - 内网渗透必备 敏感文件搜索工具

工具介绍 内网渗透过程中搜寻指定文件内容,从而找到突破口的一个小工具 下载链接: 链接: https://pan.quark.cn/s/067a43165790使用说明 python3 FindEverything.py -n .txt,.ini,.yaml,.php,.jsp,.java,.xml,.sql -c "password=" -d D:/ python3 FindEverything.p…

不可不知的WPF几何图形(Geometry)

在软件行业,经常会听到一句话“文不如表,表不如图”说明了图形在软件应用中的重要性。同样在WPF开发中,为了程序美观或者业务需要,经常会用到各种个样的图形。今天以一些简单的小例子,简述WPF开发中几何图形(Geometry)相关内容,仅供学习分享使用,如有不足之处,还请指…

[Spring]MyBatis的执行原理

MyBatis的执行原理详细介绍 为了使大家能够更加清晰的理解MyBatis程序,在正式讲解MyBatis入门案例之前,先来了解一下MyBatis程序的工作原理,如图1所示。 MyBatis的工作原理从图1可以看出,MyBatis框架在操作数据库时,大体经过了8个步骤。下面就对图1中的每一步流程进行详细…

Linux 磁盘管理

1.磁盘分类磁盘,硬盘 != 内存HDD(hard)机械硬盘. SSD(solid)固态硬盘. 磁盘接口:类似于水壶的壶嘴,决定了磁盘最大速度. ⭐硬盘选项 说明 容量转速机械硬盘 SATA 备份服务器,性能要求不高场景,10k rpm 4tb 8tb 10tb 根据需要选择(未来规划)机械硬盘 SAS 企业环境标配,生产环境使…

逐月信息学——2024初秋集训——提高组 #22

A. 牛牛的方程式 题目描述 给定一个三元一次方程 \(ax+by+cz=d\),求该方程是否存在整数解。 思路 由于若干个 \(a,b,c\) 只能凑出 \(\gcd (a,b,c)\) 的倍数,所以只需判断 \(d\) 是否为 \(\gcd(a,b,c)\) 的倍数即可。特别的,若 \(a,b,c\) 均为 \(0\),则显然只有 \(d=0\) 时存…

SpringBoot发送邮件

0 导入发送邮件的依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency>1 获取邮件授权码2 配置yml文件 spring:mail:#smtp服务主机 qq邮箱则为smtp.qq.comh…