随着工作年限的增增长,发现自己越来越不喜欢在博客里面写一些掺杂自己感想的东西了,或许是逐渐被工作逼得“成熟”了吧。2024年,学到了很多东西,做了很多项目,也帮别人解决了很多问题,唯独没有涨工资。来这家公司快两年了,业务量增加了不少,工资却还是那个样,领导连大饼都懒得给我画了。

1.2024年总结

1.1 项目总结

其实今年也没做啥项目,一半时间都花在重构老软件上,没有产品经理,没有项目经理,所有的东西都靠两个软件自己来,做完之后也没有业务测试,测试也是我自己。在开发这套软件的过程中,我也是总结了一套适用于上位机开发的比较统一的框架:

  • 第一是分层处理,将整个软件分为通讯层、设备层、控制层、控制面板层,每个层抽象出几个具体业务接口,上层通过接口调用下层,达到解耦的目的,所有业务通过指令模式封装在一个个对象中,不同的业务就是不同指令的组合,整个模式非常灵活
    在这里插入图片描述
  • 第二配置优先原则,分离业务中变化的和不变的配置,将不变的保存在资源文件中,变化的放在配置目录的.ini文件中,之后读取拼装初始化Json对象,核心对象全部通过Qt的反射模式创建,很多业务通过修改配置文件就行了,这个东西要平衡好灵活性和易用性,设置好边界,过度追求灵活性反而会徒增工作量,因为很多配置只有我们软件工程师才能看懂,做在qt的资源中反而更省事;
    在这里插入图片描述
  • 第三就是界面美化,虽然一个不能强求一个软件工程师做好看的UI,但是对于外行人来说,你UI做的好看就说明你技术厉害,所以掌握几套好看的qss风格还是很重要的,这个正在做…
  • 其它就是做老软件的维护工作,其中比较有意思的是,把之前用matlab写的斜光测距建模和预测算法在Qt上用Opencv重写了一下,也是把原来代码整理了,用面向对象的技术分解各部分功能,增加了可视化建模,测量故障异常排查等功能
  • 维护老软件,确实没啥可说的,总结两个字就是:操蛋!

1.2 技术总结

今年在技术栈上没啥突破,基本上还是用Qt开发产品业务,C#开发一些工具软件,python做一些算法原型的研究(越来越觉得python是个操蛋的语言了,好久不看就会忘了之前写的思路)。

  • 设计模式:今年也是把《gof设计模式》看了两遍,对于里面大部分的使用场景都有自己的理解,但是对于像备忘录模式、访问者模式的使用场景还是一知半解。生搬硬套设计模式倒不如不用设计模式,在现在的Qt语言中,很多设计模式的实现方式和书本上的都有较大出入,在充分理解业务变化点的基础上,理解设计模式的思想并在业务中审慎地使用设计模式才是核心,过度设计还不如不设计。
  • C++语言:今年好像对于C++语言基础的书看得不多,也就浅浅地看了一遍《Essential C++》,《C++ Primer》也是没有再看过了,其它的就是再 C语言中文网 上看的一些C++知识了,现在会员也到期了,也就没啥看的了。
  • C#语言:看了一下杨中科的《ASP.Net Core技术内幕与项目实战》,前面的还能看看,后面就是将一些ef框架和Web开发相关的了,看了也记不住。另外就是做了一个调试雷赛电机驱动器的调试软件和数据上传平台(可以适配modbus、数据库不同的上传方式),做了一个blazor的数据大屏看板,感觉C#写的程序在老机器上确实没有qt运行的流畅,也许我用的是.Net6的原因吧,老机器不太适配。
  • Python:没看啥书,用pyqt做了一套光谱性能评价的软件,用了洛伦兹拟合算法啥的。

2.2025年规划

2.1 技术上

  • 学一学在Linux上开发软件的技能,看看能不能承担嵌入式开发的一些产品
  • 注重基础,对于《C++ Primer》、《深入理解计算机系统》、《代码大全》等经典名著还是要多看两遍
  • 界面美化,总结出两套qss窗体美化的主题,让自己的软件看起来高大上一点

2.2 业务上

  • 现在也没啥追求了,干好自己的事就好了
  • 继续完善自己的上位机通用开发框架,提升框架的拓展性、健壮性和易用性

3.总结

现在大环境确实挺差的,稳定是第一,降低期望,降低消费,专注于发展自己的技术能力,会减少很多烦恼。很多时候你改变不了环境,只求把自己该做的事情做好,多看看自己学到了什么,对软件开发的很多又有了新的认识,不忘初心,坚持自己的本心就好!

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云-银行核心系统转型之业务建模与技术建模

业务领域建模包括业务建模和技术建模,整体建模流程图如下: 业务建模包括业务流程建模和业务对象建模 业务流程建模:通过对业务流程现状分析,结合目标核心系统建设能力要求,参考行业建 模成果,形成结构化的…

Unity3D基于Unity整合BEPUphysicsint物理引擎实战详解

引言 Unity3D是一款流行的游戏引擎,提供了丰富的功能和工具,使开发者能够轻松创建各种类型的游戏。其中,帧同步技术是游戏开发中至关重要的一环,它能确保多个玩家在同一时间内看到的游戏状态是一致的。BEPUphysicsint是一个基于U…

【C++笔记】红黑树封装map和set深度剖析

【C笔记】红黑树封装map和set深度剖析 🔥个人主页:大白的编程日记 🔥专栏:C笔记 文章目录 【C笔记】红黑树封装map和set深度剖析前言一. 源码及框架分析1.1 源码框架分析 二. 模拟实现map和set2.1封装map和set 三.迭代器3.1思路…

win32汇编环境,怎么得到磁盘的盘符

;运行效果 ;win32汇编环境,怎么得到磁盘的盘符 ;以下代码主要为了展示一下原理,应用GetLogicalDrives、GetLogicalDriveStrings函数、屏蔽某些二进制位、按双字节复制内容等。以下代码最多查8个盘,即返回值中的1个字节的信息 ;直接抄进RadAsm可编译运行。…

MongoDB vs Redis:相似与区别

前言 在当今的数据库领域,MongoDB 和 Redis 都是备受关注的非关系型数据库(NoSQL),它们各自具有独特的优势和适用场景。本文将深入探讨 MongoDB 和 Redis 的特点,并详细对比它们之间的相似之处和区别,帮助…

mybatis(19/134)

大致了解了一下工具类,自己手敲了一边,java的封装还是真的省去了很多麻烦,封装成一个工具类就可以不用写很多重复的步骤,一个工厂对应一个数据库一个environment就好了。 mybatis中调用sql中的delete占位符里面需要有字符&#xf…

重学SpringBoot3-WebClient配置与使用详解

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞??收藏评论 重学SpringBoot3-WebClient配置与使用详解 1. 简介2. 环境准备 2.1 依赖配置 3. WebClient配置 3.1 基础配置3.2 高级配置3.3 retrieve()和exchange()区别 4. 使用示例 4.1 基本请求操…

.Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上)

系列文章目录 1、.Net Core微服务入门系列(一)——项目搭建 2、.Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上) 3、.Net Core微服务入门全纪录(三)——Consul-服务注…

Spark Streaming的核心功能及其示例PySpark代码

Spark Streaming是Apache Spark中用于实时流数据处理的模块。以下是一些常见功能的实用PySpark代码示例: 基础流处理:从TCP套接字读取数据并统计单词数量 from pyspark import SparkContext from pyspark.streaming import StreamingContext# 创建Spar…

深度学习系列75:sql大模型工具vanna

1. 概述 vanna是一个可以将自然语言转为sql的工具。简单的demo如下: !pip install vanna import vanna from vanna.remote import VannaDefault vn VannaDefault(modelchinook, api_keyvanna.get_api_key(my-emailexample.com)) vn.connect_to_sqlite(https://va…

【线性代数】列主元法求矩阵的逆

列主元方法是一种用于求解矩阵逆的数值方法,特别适用于在计算机上实现。其基本思想是通过高斯消元法将矩阵转换为上三角矩阵,然后通过回代求解矩阵的逆。以下是列主元方法求解矩阵 A A A 的逆的步骤: [精确算法] 列主元高斯消元法 步骤 1&am…

[0242-06].第06节:SpringBoot对SpringMVC的自动配置

SpringBoot学习大纲 一、基于SpringBoot搭建Web工程: 1.1.编码实现步骤: a.创建SpringBoot项目 b.选中依赖:选中我们所需要的模块 1.2.SSM中的WEB开发配置与SpringBoot中WEB开发自动配置对比: a.SSM中的WEB开发: 1…

【21】Word:德国旅游业务❗

目录 题目 NO1.2.3 NO4 NO5.6 NO7 NO8.9.10.11 题目 NO1.2.3 F12:另存为布局→页面设置→页边距:上下左右选中“德国主要城市”→开始→字体对话框→字体/字号→文本效果:段落对话框→对齐方式/字符间距/段落间距 NO4 布局→表对话框…

什么是软件架构

什么是软件架构 程序员说,软件架构是要决定编写哪些C程序或OO类、使用哪些库和框架 程序经理说,软件架构就是模块的划分和接口的定义 系统分析员说,软件架构就是为业务领域对象的关系建模 配置管理员说,软件架构就是开发出来的…

1/20赛后总结

1/20赛后总结 T1『讨论区管理员』的旅行 - BBC编程训练营 算法:IDA* 分数:0 damn it! Ac_code走丢了~~(主要是没有写出来)~~ T2华强买瓜 - BBC编程训练营 算法:双向DFS或者DFS剪枝 分数:0 Ac_code…

大数据与AI驱动的商业查询平台:企业市场拓展的变革引擎​

在竞争白热化的商业环境里,企业对准确市场信息的高效获取能力,直接关系到业务拓展的成败。商业查询平台借助大数据和人工智能技术,为企业提供精准客户筛选、市场拓展分析以及风险评估服务,正逐渐成为企业市场开拓的得力助手。本文…

redis 各个模式的安装

一、Redis单机安装 1、安装gcc依赖 Redis是C语言编写的,编译需要GCC。 Redis6.x.x版本支持了多线程,需要gcc的版本大于4.9,但是CentOS7的默认版本是4.8.5。 升级gcc版本: yum -y install centos-release-scl yum -y install d…

TiDB 的优势与劣势

TiDB 的优势与劣势 TiDB 作为一款新兴的分布式数据库,在业界逐渐崭露头角。它兼具传统关系型数据库的特性,又充分利用分布式架构的优势。那么,TiDB 究竟有怎样的优缺点呢?今天我们来聊聊 TiDB 的优势与劣势,帮你全面了…

蓝桥杯算法日常|c\c++常用竞赛函数总结备用

一、字符处理相关函数 大小写判断函数 islower和isupper:是C标准库中的字符分类函数,用于检查一个字符是否为小写字母或大写字母,需包含头文件cctype.h(也可用万能头文件包含)。返回布尔类型值。例如: #…

微服务知识——4大主流微服务架构方案

文章目录 1、微服务聚合模式2、微服务共享模式3、微服务代理模式4、微服务异步消息模式 微服务是大型架构的必经之路,也是大厂重点考察对象,下面我就重点详解4大主流微服务架构方案。 1、微服务聚合模式 微服务聚合设计模式,解决了如何从多个…