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

互联网中,软件工程师岗位会分前端工程师,后端工程师。这是由于互联网软件规模庞大,从业人员众多。前后端分别根据各自需求发展不一样的技术栈。那么上位机软件呢?它规模小,通常一个人就能开发一个项目。它还有必要分前后端吗?

有必要。本文从三个方面论述。分别是可测试,可维护,可移植。

可测试

软件黑盒测试更普遍,但很难覆盖所有应用场景。于是有了接口测试、模块化测试以及单元测试。都是通过降低测试对象的复杂度,来实现更全面的测试。那么将上位机软件分为前后端、甚至服务模块、下位机对接模块等。并做好接口划分,也就提升了软件的可测试性。从而提升质量。

可维护

低耦合的代码更容易修改。模块内部的函数变动不会影响到模块外。相反,前后端混合,页面一个控件的改动,都要去修改底层通讯模块。这样只会提升维护难度、降低软件可测试性,也就降低软件质量。

可移植

分为前后端,那么可以单独复用后端或前端代码。例如:新项目里,下位机不变,通讯协议不变。只是页面元素、布局改变。那么不修改后端代码。新前端按固定接口写好,就能直接配合使用了。

以上,就是从三个方面论述了上位机软件分层设计的必要。

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

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

相关文章

中国水土保持能力防治数据集(1992-2019)

该数据集包括1992年至2019年中国每年的水土保持能力及其影响因子。这些数据是基于改进的RUSLE模型开发的,其中包含植被覆盖和管理(C)因子和降雨侵蚀率(R)因子作为重要的输入因子,针对不同区域进行了优化。 其中该数据集一共包含了9个数据它们分别是&…

Leetcode面试经典150题-82.删除排序链表中的重复元素II

之前写过这个题的基础第83题,看本文之前一定要先看懂这个Leetcode面试经典150题-82.删除排序链表中的重复元素II前序-83.删除排序链表中的重复元素_删除链表中重复的元素-CSDN博客 直接上代码了,解法都在代码里,不懂就留言或者私信 /*** De…

C++---string类常见接口

介绍 string类详情>>>https://cplusplus.com/reference/string/string/?kwstring 1. string是表示字符串的字符串类(感觉就像一个动态的字符数组) 2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作…

突破瓶颈:Java并发编程的最佳实践与技巧,你了解了吗?

文章目录 1 什么是 Executor 和 ExecutorService ?这两个接口有什么区别?2 java.util.concurrent 标准库中 ExecutorService 的可用实现是什么 ?3 什么是 Java 内存模型( JMM )?描述下其目的和基本思想4 JM…

工业相机飞拍的原理及工作原理

工业相机飞拍(或称为工业高速相机飞行拍摄)是一种利用高速图像捕捉技术和精密运动控制系统进行高效图像采集的先进技术。它广泛应用于工业检测、质量控制和自动化生产等领域。本文将详细探讨工业相机飞拍的原理及其工作方式。 一、工业相机飞拍的基本概…

插件第一版基本完成

什么插件 Command Assist 经过多次修改和界面优化,Mac和Windows的适配,最终形态长这样: 欢迎下载使用,反馈问题和建议~ 主要作为日常开发的手边工具,功能不复杂,核心就是常用命令的管理,包括&…

35天学习小结

距离上次纪念日,已经过去了35天咯 算算也有5周了,在这一个月里,收获的也挺多,在这个过程中认识的大佬也是越来越多了hh 学到的东西,其实也没有很多,这个暑假多多少少还是有遗憾的~ 第一周 学习了一些有…

Good Die与Inked Die 介绍

Good Die与Inked Die在半导体行业中,特别是与闪存芯片相关的领域,是两个重要的概念,它们代表了芯片质量的不同等级。 Good Die 定义: Good Die,即良品颗粒,是指在晶圆生产过程中,经过严格测试后被认定为符合原厂规格要求、质量良好的芯片。这些芯片在切割、封装等后续工…

第15-02章:理解Class类并获取Class实例

我的后端学习大纲 我的Java学习大纲 1、Java反射机制原理图: 源代码通过Javac编译得到字节码文件,当我执行到new一个对象的时候,字节码文件会通过ClassLoader被加载,然后得到一个Class类对象,存放在堆中,加…

Redis搭建集群

功能概述 Redis Cluster是Redis的自带的官方分布式解决方案,提供数据分片、高可用功能,在3.0版本正式推出。 使用Redis Cluster能解决负载均衡的问题,内部采用哈希分片规则: 基础架构图如下所示: 图中最大的虚线部分…

Linux的历史,版本,Linux的环境安装、简单学习4个基本的Linux指令、创建普通用户等的介绍

文章目录 前言一、Linux的历史二、版本三、Linux的环境安装1. 腾讯云服务器的申请2. xshell的安装与使用 四、 简单学习4个基本的Linux指令1. ls2. pwd3. mkdir4. cd 五、创建普通用户总结 前言 Linux的历史,版本,Linux的环境安装、简单学习4个基本的Li…

PHP随时随地预订民宿酒店预订系统小程序源码

随时随地预订,民宿酒店预订系统让旅行更自由! 🌍 说走就走的旅行,从预订开始 旅行,总是让人心生向往,但繁琐的预订流程却常常让人望而却步。不过,现在有了“随时随地预订民宿酒店预订系统”&am…

RK3588九鼎创展方案在Arm集群服务器的项目中的应用分析​​

RK3588九鼎创展核心板,搭载8核瑞芯微3588芯片,具备高性能、低功耗以及强大的多媒体和AI处理能力。在Arm集群服务器项目中,RK3588系列芯片用有明显的性能优势。本文将结合RK3588芯片的性能特征以及九鼎创展的项目经验来分析RK3588在集群服务器…

【JAVA入门】Day34 - Stream流

【JAVA入门】Day34 - Stream流 文章目录 【JAVA入门】Day34 - Stream流一、Stream 流的作用和使用步骤1.Stream流的创建,数据的添加2. Stream流的中间方法3. Stream流的终结方法 Stream 流有什么作用?我们看一个例子: 【练习】需求&#xff…

swift qwen2-vl推理及加载lora使用案例

参考: https://swift.readthedocs.io/zh-cn/latest/Instruction/LLM%E5%BE%AE%E8%B0%83%E6%96%87%E6%A1%A3.html#%E5%BE%AE%E8%B0%83%E5%90%8E%E6%A8%A1%E5%9E%8B https://blog.csdn.net/weixin_42357472/article/details/142150209 SWIFT支持300+ LLM和50+ MLLM(多模态大模型…

利用高德+ArcGIS优雅获取任何感兴趣的矢量边界

荷花十里,清风鉴水,明月天衣。 四时之景不同,乐亦无穷尽也。今天呢,梧桐君给大家讲解一下,如何利用高德地图,随机所欲的获取shp边界数据。 文章主要分成以下几个步骤: 首先搜索你想获取的矢量…

发送成绩的app或小程序推荐

老师们,新学期的第一次月考马上开始,是不是还在为如何高效、便捷地发布成绩而头疼呢?别担心,都2024年了,我们有更智能的方式来解决这个问题! 给大家安利一个超级实用的工具——易查分小程序。这个小程序简…

element ui form 表单出现英文提示的解决方案

场景再现: 在使用 form 表单的时候,一般都需要对表单元素进行验证,错误就出现在了这里,除了配置的错误信息,还会出现一个 英文校验提示,如下图: 解决方案 出现的原因是在el-form-item中使用…

把设计模式用起来(3)用不好的原因之时机不对

上一篇:《把设计模式用起来(3)——用不好的原因 之 实践不足》https://blog.csdn.net/nanyu/article/details/141939342 本篇继续讲设计模式用不好的常见原因,这是第二个:使用设计模式的时机不对。 二、时机不对 这里…

望繁信科技与华恒生物正式签约,共同开启流程数字化转型新篇章

近日,上海望繁信科技有限公司(简称“望繁信科技”)与安徽华恒生物科技股份有限公司(简称“华恒生物”)成功举行了战略合作签约仪式。作为全球领先的合成生物制造企业,华恒生物将引入望繁信科技的流程智能管…