上位机工作总结(2023.03-2023.08)
1.工作总结
不知不觉,已经从C#转为Qt开发快半年了。这半年内,也是学习了很多C++相关的开发技能,同时自己的技术栈也是进一步丰富,以后跑路就更容易啦,哈哈!自己之前就有Winform和一些简单的Qt项目实践,所以从Winform转为C++Qt开发也不是太难的事情,QWidget主要也就是一些控件的拖拉拽还有布局的知识,迭代了那么多年,我感觉比Winform的很多API更加合理,毕竟Winform这么多年也没怎么迭代。自己学习Qt也是先开发一款比较简单的数据收集、保存、查询的软件,主要用到了QWidget和SQL等相关知识。后面就开始上手项目了,公司项目的架构只能说是一言难尽,很多情况下你看代码压根不知道是啥业务,自己也是在啃了几个小模块后,才逐渐理清一点我们公司的业务。和之前再聚光做的光谱分析业务类似,无非就是打激光,光谱仪采集光谱,将数据传给算法接口,最后显示计算结果。业务是简单的、代码是冗余复杂的。所以最近也是在和技术领导商量如何对现有业务进行重构(领导说是重写)。
2.学习
自己平时也是挺喜欢学习新知识的,所以从C#转为C++转的也挺快的,主要就是C++内存管理比较麻烦,其次就是C++编程的语法和C#略有不同,类的声明和定义、lambda表达式、命名风格的不同。后来发现C++的内存管理对于我们这种小项目也不是什么太难的问题,只要把软件架构设计好,再一些Manager单例中对实体的创建和销毁进行管理后,也很少出现内存相关的问题。很多时候代码的问题多于人的问题,整洁代码和语言没有啥关系,不讲究的人用什么语言写的都是烂代码,只不过是C++又给他们多了一个烂代码的理由罢了。自己也是看完了霍亚飞的《Qt Creator快速入门》、《Essential C++》、《C++ Primer》这几本书,还有就是qtkaifajingyan 的一些经验总结,自己现在对于C++理解的比较浅显,前面说的那些书看的时候也是一知半解,等做个两年的C++项目后再回头看看也许收获会更多。
3.关于重构
自己最近也是看了很多遗留代码,代码质量不敢恭维,想想当年在聚光维护的那套代码还算好的呢。刚开始,也是想在前人的基础上进行重构,尝试了几天后,发现重构实在是太难了,一不小心就被绕进去了,然后每天下班人的状态都不是很好。第一个项目我就做了一个比较正确的决定,将新业务新开发为一套软件,再通过通讯协议集成进老项目,这样老项目出了问题也不用相互甩锅了。后来那老员工一直叫我把软件集成进老项目,哈哈,我又不傻喽。关于重构还是重写,我的理解是重构是在整理质量不是太差、有一定架构思维的代码,看代码能懂一点业务。重写是简单业务复杂化,业务写的非常冗余,一句代码就能写完的功能非得五句十句,看代码看的想吐,这时候就考虑重写了。重写也是在充分了解原有业务的基础上,不影响他人工作的前提下进行的。
4.计划
最近在尝试看视频学习新技术,发现效果不是特别好,视频要不就是太冗余,要不就是太基础。看了两个星期后我决定还是放弃这种学习方法,还是多看看技术博客和技术书籍吧。C语言中文网是一个比价好的学习平台,上面也得教程也都是深入浅出,值得买个会员来看看。后续准备:
1.继续学习C++相关语言知识,将C语言中文网上的C++教程再看一遍
2.学习《深入理解计算机系统》这本书,有点难,但是要保证每天看1-2节
3.学习嵌入式相关知识,在Linux上进行软件开发,买本书和开发版回来学一学
4.继续学习QtWidget相关知识,暂时不考虑qml开发
相关文章:
上位机工作总结(2023.03-2023.08)
1.工作总结 不知不觉,已经从C#转为Qt开发快半年了。这半年内,也是学习了很多C相关的开发技能,同时自己的技术栈也是进一步丰富,以后跑路就更容易啦,哈哈!自己之前就有Winform和一些简单的Qt项目实践&#…...
APSIM模型参数优化 批量模拟丨气象数据准备、物候发育和光合生产、物质分配与产量模拟、土壤水分平衡算法、土壤碳氮平衡模块、农田管理模块等
随着数字农业和智慧农业的发展,基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生…...
Azure防火墙
文章目录 什么是Azure防火墙如何部署和配置创建虚拟网络创建虚拟机创建防火墙创建路由表,关联子网、路由配置防火墙策略配置应用程序规则配置网络规则配置 DNAT 规则 更改 Srv-Work 网络接口的主要和辅助 DNS 地址测试防火墙 什么是Azure防火墙 Azure防火墙是一种用…...
【LeetCode】剑指 Offer Ⅱ 第4章:链表(9道题) -- Java Version
题库链接:https://leetcode.cn/problem-list/e8X3pBZi/ 类型题目解决方案双指针剑指 Offer II 021. 删除链表的倒数第 N 个结点双指针 哨兵 ⭐剑指 Offer II 022. 链表中环的入口节点(环形链表)双指针:二次相遇 ⭐剑指 Offer I…...
Android SDK 上手指南|| 第三章 IDE:Android Studio速览
第三章 IDE:Android Studio速览 Android Studio是Google官方提供的IDE,它是基于IntelliJ IDEA开发而来,用来替代Eclipse。不过目前它还属于早期版本,目前的版本是0.4.2,每个3个月发布一个版本,最近的版本…...
Vue--》打造个性化医疗服务的医院预约系统(七)完结篇
今天开始使用 vue3 + ts 搭建一个医院预约系统的前台页面,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关…...
点亮一颗LED灯
TOC LED0 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能APB2的外设时钟GPIO_InitTypeDef GPIO_Initstructure;GPIO_Initstructure.GPIO_Mode GPIO_Mode_Out_PP;//通用推挽输出GPIO_Initstructure.GPIO_Pin GPIO_Pin_5;GPIO_Initstructure.GPIO_Speed GPIO_S…...
SSH远程直连--------------Docker容器
文章目录 1. 下载docker镜像2. 安装ssh服务3. 本地局域网测试4. 安装cpolar5. 配置公网访问地址6. SSH公网远程连接测试7.固定连接公网地址8. SSH固定地址连接测试 在某些特殊需求下,我们想ssh直接远程连接docker 容器,下面我们介绍结合cpolar工具实现ssh远程直接连接docker容器…...
Python/Spring Cloud Alibaba开发--前端复习笔记(1)———— html5和css3.html基础
Python/Spring Cloud Alibaba开发–前端复习笔记(1)———— html5和css3.html基础 1)概述和基本结构 超文本标记语言。超文本指超链接,标记指的是标签。 基本结构: <!DOCTYPE html> 文档声明 <html lang”en”>…...
open cv学习 (十一)视频处理
视频处理 demo1 import cv2 # 打开笔记本内置摄像头 capture cv2.VideoCapture(0) # 笔记本内置摄像头被打开 while capture.isOpened():# 从摄像头中实时读取视频retval, image capture.read()# 在窗口中实时显示读取到的视频cv2.imshow("Video", image)# 等到用…...
函数栈帧理解
本文是从汇编角度来展示的函数调用,而且是在vs2013下根据调试展开的探究,其它平台在一些指令上会有点不同,指令不多,简单记忆一下即可,在我前些年的学习中,学的这几句汇编指令对我调试找错误起了不小的作用…...
【SA8295P 源码分析】70 - QAM8295P 原理图参考设计 之 DP、eDP 接口硬件原理分析
【SA8295P 源码分析】70 - QAM8295P 原理图参考设计 之 DP、eDP 接口硬件原理分析 一、DP 接口(Display Port)介绍二、高通参考硬件原理图分析2.1 高通 Display 接口框图介绍2.2 DP接口 Pin 定义介绍2.3 高通参考设计:DP2、DP3 硬件原理图2.4 高通参考设计:eDP0、eDP1 硬件…...
【CSS动画02--卡片旋转3D】
CSS动画02--卡片旋转3D 介绍代码HTMLCSS css动画02--旋转卡片3D 介绍 当鼠标移动到中间的卡片上会有随着中间的Y轴进行360的旋转,以下是几张图片的介绍,上面是鄙人自己录得一个供大家参考的小视频🤭 代码 HTML <!DOCTYPE html>…...
数据结构<树和二叉树>顺序表存储二叉树实现堆排
✨Blog:🥰不会敲代码的小张:)🥰 🉑推荐专栏:C语言🤪、Cpp😶🌫️、数据结构初阶💀 💽座右铭:“記住,每一天都是一個新的開始…...
理解docker命令
基础命令 帮助命令 docker --help(帮助命令) 用于获取某个命令的帮助信息 #命令帮助 docker 命令 --help 小技巧 换行符 \ 使用命令换符,可以让繁杂命令变得有条理 #命令换行,使用换行符 \ docker ... \... \ 镜像命令 d…...
【SA8295P 源码分析】16 - QNX侧 TouchScreen Panel (TP)线程函数 tp_recv_thread 源码分析
【SA8295P 源码分析】16 - QNX侧 TouchScreen Panel (TP)线程函数 tp_recv_thread 源码分析 一、TP 线程函数:tp_recv_thread()二、处理&上报 坐标数据 cypress_read_touch_data()系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总》 本文链接:《【SA8295P…...
第九章MyBatis的技巧
${}和#{}的区别 #{}给sql语句的占位符传值${}直接将值拼接到sql语句上,存在sql注入的现象 什么时候用${} 需要先对sql语句拼接,然后再编译。 字符串排序字段向SQL语句中拼接表名。比如根据日期生成日志表 批量删除 delete from car where in(${ids}…...
计算机技术与软件专业技术资格(水平)考试----系统架构设计师
【原文链接】计算机技术与软件专业技术资格(水平)考试----系统架构设计师 考试简介 计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试。计算机软件资格考试既是职业资格考试,又是职称资格考试。考试合格…...
使用nrm快速切换npm源以及解决Method Not Implemented
文章目录 什么是nrm如何使用nrm查看本机目前使用的npm 源安装nrm查看可选源查看当前使用源切换源添加源删除源测试源的响应时间 如果你遇到这个报错,就可以采用这种方案解决哦解决方案:1. 切换为官方源2. 查看漏洞3. 修复漏洞4. 下面命令慎重使用&#x…...
NVIDIA Jetson 项目:机器人足球比赛
推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景 事实上,整个比赛都致力于这个想法。RoboCup小型联盟(SSL)视觉停电技术挑战赛鼓励团队“探索本地传感和处理,而不是非车载计算机和全球摄像机感知环境的…...
【论文解读】Hybrid-SORT: Weak Cues Matter for Online Multi-Object Tracking
因为Hybrid-SORT的baseline是基于OCSORT进行改进的,在这之前建议先了解byteTrack和【】的相关知识 1.介绍 1.1 基本框架 多目标跟踪(MOT)将问题分为两个子任务。第一个任务是检测每个帧中的对象。第二个任务是将它们在不同的框架中联系起来。关联任务主要通过显式…...
Microsoft 图像BERT,基于大规模图文数据的跨模态预训练
视觉语言任务是当今自然语言处理(NLP)和计算机视觉领域的热门话题。大多数现有方法都基于预训练模型,这些模型使用后期融合方法融合下游任务的多模态输入。然而,这种方法通常需要在训练期间进行特定的数据注释,并且对于…...
vue3+elementUI-plus实现select下拉框的虚拟滚动
网上查了几个方案,要不就是不兼容,要不就是不支持vue3, 最终找到一个合适的,并且已上线使用,需要修改一下样式: 代码如下: main.js里引用 import vue3-virtual-scroller/dist/vue3-virtual-scroller.css; …...
学C的第三十四天【程序环境和预处理】
相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 学C的第三十三天【C语言文件操作】_高高的胖子的博客-CSDN博客 1 . 程序的翻译环境和执行环境 在ANSI C(C语言标准)的任何一种实现中,存在两个不同的环境。 ࿰…...
微服务中间件--Ribbon负载均衡
Ribbon负载均衡 a.Ribbon负载均衡原理b.Ribbon负载均衡策略 (IRule)c.Ribbon的饥饿加载 a.Ribbon负载均衡原理 1.发起请求http://userservice/user/1,Ribbon拦截该请求 2.Ribbon通过EurekaServer拉取userservice 3.EurekaServer返回服务列表给Ribbon做负载均衡 …...
字符设备驱动实例(ADC驱动)
四、ADC驱动 ADC是将模拟信号转换为数字信号的转换器,在 Exynos4412 上有一个ADC,其主要的特性如下。 (1)量程为0~1.8V。 (2)精度有 10bit 和 12bit 可选。 (3)采样时钟最高为5MHz,转换速率最高为1MSPS (4)具有四路模拟输入,同一时…...
python基础5——正则、数据库操作
文章目录 一、数据库编程1.1 connect()函数1.2 命令参数1.3 常用语句 二、正则表达式2.1 匹配方式2.2 字符匹配2.3 数量匹配2.4 边界匹配2.5 分组匹配2.6 贪婪模式&非贪婪模式2.7 标志位 一、数据库编程 可以使用python脚本对数据库进行操作,比如获取数据库数据…...
SpringAOP原理:手写动态代理实现
0、基础知识 AOP我们知道,是在不修改源代码的情况下,为代码添加一些新功能的技术。通过动态代理,可以在不修改原始类代码的前提下,对方法进行拦截和增强。 动态代理常用于在不改变原有业务逻辑的情况下,对方法…...
【旅游度假】Axure酒店在线预订APP原型图 旅游度假子模块原型模板
作品概况 页面数量:共 10 页 兼容软件:Axure RP 9/10,不支持低版本 应用领域:旅游度假,生活服务 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本作品为「酒店在线预订」的移动端…...
Android JNI系列详解之CMake和ndk-build编译工具介绍
一、前提 CMake和ndk-build只是编译工具,本次主要介绍ndk-build和CMake的区别,下节课介绍他们的使用。 二、CMake工具介绍 CMake:cross platform make,是跨平台的编译工具 CMake是在AndroidStudio2.2之后引入(目前默认…...
做网批有专门的网站吗?/百度快照投诉中心官网
下载 官方下载地址,要注意的是要下载的是 MySQL Community Server。根据系统选择相应压缩包,这个是 win 下安装。选择 Zip Archive 安装 将下载好的压缩包解压到想要安装的文件夹即可,我的是 C:/mysql 配置 配置环境变量 增加系统环境变量: M…...
网站制作的流程是什么/站内推广方式
目录 柔性数组的定义 柔性数组的特点 柔性数组的优势 C语言🛴 柔性数组的定义 什么是柔性数组呢? C99中,如果在结构体定义的时候,结构体中的最后一个元素允许是未知大小的数组,那么这个数组便叫做 柔性数组 。 下面举个…...
利用已有网站 制作/安卓优化大师hd
话说C语言是很多语言学习的基础,理解并掌握好了C语言的一些语法规则,对于以后学习或者说自学其他语言,可以节省不少的时间。下面我们就来了解C语言程序当中的结构体知识点。结构体的定义形式如下:struct 结构体名{结构体成员}&…...
网上商城网站系统/公关公司
给表新增字段时,可能经常遇到错误:ORA-00054:资源正忙但指定以NOWAIT方式获取资源或者超时失效这种错误出现的情景在oracle 11.1 和 11.2 的版本中有点区别以下实验中 表 :create table hlb (id int); ,表中有数据,ddl…...
做国内第一游戏数据门户网站/国内设计公司前十名
问题描述所以我想知道哪一个是我的OpenGL版本。我可以通过SSH访问Ubuntu。我应该执行哪个命令?最佳解决办法检查OpenGL版本,glxinfo | grep "OpenGL version"你会得到如下输出,glxinfo | grep "OpenGL version"OpenGL ve…...
网站页面优化方法有哪些/引流推广的句子
题目 给你两个整数数组 source 和 target ,长度都是 n 。还有一个数组 allowedSwaps ,其中每个 allowedSwaps[i] [ai, bi] 表示你可以交换数组 source 中下标为 ai 和 bi(下标从 0 开始)的两个元素。注意,你可以按 任…...