Qt 上位机开发:最近一年关于软件架构的一些思考

📅 2026/7/3 8:38:45
Qt 上位机开发:最近一年关于软件架构的一些思考
最近开发的Xrd设备软件功能越发的复杂的不仅要支持机械臂自动化测量、也要加原位系统、现在又要加入类似测量计划的功能就是制定一批测量任务测量时可以修改角度、电流、电压等参数之前的那套通过配置文件在软件初始化时创建业务逻辑的思路可能就不太好用了想了几天通过在测量Command中使用策略模式来进行测量模式的解耦是个好的办法。实现可能半天的时间但是想这个却花了我大概两天的时间。刚好好久也没写博客了就借着这个机会写一篇最近一年的工作感悟吧。1.工作经历自己从校招开始就进入了谱育科技。三年的时间里我先后做了两年软件开发和一年算法开发主要利用近红外光谱技术进行水质污染物检测。刚参加工作时对各种新技术、新语法都充满了好奇总想着把最新的东西用到项目里也因此被领导批评过当时不懂现在渐渐理解了。软件工程首先追求的是稳定、可维护和团队协作而不是单纯地追求技术的新颖。代码规范、项目管理、需求评审、版本管理这些看似不起眼的东西反而成为后来受益最大的财富。离开之后我才发现大公司带给我的不仅仅是技术更是一套正确的软件工程思维。然后就是进入合肥这边什么智控了干了三年被PUA了一年最后觉得干下去会影响自己的身体健康就换了个工作。这段经历真正让我深入接触了 Qt也让我开始思考如何设计一套能够长期演进的软件架构。随着项目数量越来越多我逐渐把之前学习过的设计模式、重构思想以及分层设计真正应用到实际项目中并不断沉淀出属于自己的上位机开发框架。采用了配置优先、工厂模式、反射、命令模式、策略模式等思想能够兼容多个型号的设备也顺利经受住了现场项目的考验。但那时对于多线程的了解还不够深刻所以对于多线程的使用也是非常保守原则就是能不用多线程就不用多线程在一些场景下界面会卡顿。最后就是现在的公司这半年的感受就是氛围比较轻松制度很少需要自己主动去推进项目写代码写起来很有劲甚至脸上的痘痘都少了可能是在上家公司太压抑了。接触到了更加复杂的 XRD 设备研发。相比之前的项目软件复杂度又提升了一个层次不仅涉及高精度运动控制、面阵探测器数据处理、德拜环矫正、多设备协同还需要支持机械臂自动化、原位实验以及越来越复杂的测量流程可以说是最近及奶奶软件设计难度的巅峰之作了。这些业务不断推动着软件架构持续演进也让我开始重新思考框架设计的边界。之前沉淀的框架仍然能够继续使用但随着业务的发展也在不断补充多线程通信、设备状态监控、缓存优化以及界面设计规范等内容。最近新增的测量计划功能更让我意识到原有基于配置文件生成业务逻辑的方式已经难以满足复杂需求这也是我重新思考命令模式与策略模式职责划分的原因。技术方面也是从前期的C#到现在的Qt另外经常会用python做一些数据分析比如说最近的Xrd数据拟合矫正的算法但是先从python上实现优化后再移植到Qt上的python在做数据处理和算法原型方面还是强的。2.上位机框架的完善上家公司就已经创建出这套框架了原位之前用的是C#里面对于反射、异步等技术支持的都很完善所以刚在Qt上使用的时候还踩了不少坑。当时的业务比较简单每个型号的设备就支持两种测量模式分别书数据采集和样品测量。所有不同业务的逻辑都写在了配置文件中然后打包在Qt的资源里。当时用到多线程的地方也就算法处理那一块设备监控啥的都在主线程优点是稳定缺点是会卡。主要是应为当时对Qt的多线程了事件循环什么的了解的不够深刻一直以为Qt对象不能使用多线程进行操作现在想想还是要结合Qt的事件循环机制来看待有事件循环的多线程需要谨慎看待没有事件循环的其实和普通多线程差不多。这家公司也是继续沿用这套框架在使用过程中也借助Qt的多线程事件循环机制降低了一些通讯订阅的复杂度完善了modbus多线程调用的逻辑其实就是加了互斥锁。另外也利用多线程和缓存技术对modbus点位读写做了很大的优化现在modbus数据读取可谓是非常丝滑。还有就是对上位机的导航、控制、数据显示等界面做了一套设计规范整个软件看起来更加简洁了这里安利一本《认知与设计 理解UI设计准则》看看对我们这种业余设计师还是优点启发的。后续要做的就是要完善程序报警相关功能还有就是基于事件机制的命令执行逻辑最近做的新项目可以尝试以下看看效果。之前做的一张UML图3.对AI的思考最近几年AI写代码也是大行其道前阵子Linus还在吐槽说AI写的代码难以维护Linux代码审核比较烦。我是和大佬的观点一致如果完全放弃架构设计把AI生成的代码不断堆积到项目中项目最终很容易演变成一个难以维护的系统。AI可以帮我们做一些重复性的活也可以和我们商量架构的方案但是不能替代我们的思考过程主动权还是要掌握在自己手中。平时还是要多看看设计模式、计算机原理、重构等基础书籍并且在编程中不断内化这些技能要不然被AI替代是早晚的事。4.关于未来最近2年研究了很多关于价值投资的东西也看了很多巴菲特、段永平这类大佬也书籍和视频。特别是段永平说的那句“做对的事情把事情做对”对我的人生规划有很大的影响。继续深耕仪器仪表领域不断完善自己的上位机开发思想在这个细分行业构建属于自己的护城河从而获得一份不错的薪水。在投资上投资红利低波这类适合普通人的指数基金为十年后的自己和家人提供另一份稳定的现金流。最后就是继续保持一个对技术的热爱的心成为一个受人尊敬的程序员之前不懂如何做对的事情现在渐渐懂了很多事情你从十年的角度来看你就知道是对还是错了发现错了要及时停止慢慢的就能把事情做对了。软件架构如此投资如此人生也是如此。真正重要的不是一次做得多漂亮而是不断修正方向在正确的道路上持续积累。