周记-唐纳德的《计算机程序设计艺术》

news2025/1/4 16:49:51

用代码生成代码

开发一个协议,字段有些多,每个字段是QT的属性,需要写Q_PROPERTY,一个一个编辑的话比较繁琐,耗费时间。后来就用代码生成了头文件和源文件,getset还有signal函数,内容基本都是固定的,只要有字段的名字就可以。所以用代码去生成比较方便。
linux内核中也有这样的例子,比如对于logo的处理,会把logo图片的内容,在编译期间,生成头文件,头文件中有图片的十六进制数组。加快linux的启动时间,不用在启动过程中,再去读取图片数据。

算法学习

大部分时间都是在开发应用软件的界面,不免厌倦。UI是属于计算机的一部分,但不应该是计算机科学的一部分,而且这样的工作内容,难度不大,上手比较快,实话说,就价值不大。就像祖师爷linus说的,宁愿在岛上饿死,也不愿意写UI。所以买了唐纳德的《计算机程序设计艺术》卷1,重心转到算法学习。工作中也会用到各种算法,和产品原理相关的,主要是光学方面的公式,最后要用到数学原理去求解。又是嵌入式开发,核心板性能和资源有限,算法的效率也比较关键,性能差时界面点击比较卡,会影响用户体验。多学习一些不容易在工作中被替代的知识,提高自己的价值。这是学习什么知识的选择的一个思路。除了自己感兴趣外,还要考虑所创造的价值,还有体现自己的价值。

一个线程同步bug的查找

定位到bug的原因后,是一个比较简单的线程同步问题,在一个线程中把一个变量修改了,影响了另一个线程流程的执行,没有加锁。是一个bool变量,其实不应该修改,删掉修改变量的代码就可以了。加锁会影响性能,倒是不需要加锁。
主要想说的是定位的过程,全程几乎都是在用打印的方式寻找,没有用到调试器,bug是偶现的,变量修改比较频繁,使用调试器反而不方便,还不如最原始的打印信息的方式。这个也是《程序设计实践》的建议,仔细思考,加以打印辅助信息。
有一个矛盾点,就是调试日志的添加,发布版本中加多了影响性能,加少了,现场出问题又不好定位。涉及到日志信息粒度的问题,也不是好解决。

其他

把《马恩全集》的第17卷读完,开始18卷。大概一年的时间读了17卷,不应该是读完,而是翻完,很多地方都不太理解,当时背景和专业知识等,有些内容是能看懂一些的。先继续往后读,花个3~4年的时间翻完一遍,初步了解和熟悉内容,然后再去细读。

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

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

相关文章

C#-使用StbSharp库读写图片

一.StbSharp StbSharp是基于C/Stb图形处理库封装的C#接口,支持多种格式PNG/JPG等图片的处理. GitHub链接: GitHub - StbSharp/StbTrueTypeSharp: C# port of stb_truetype.hhttps://github.com/StbSharp/StbTrueTypeSharp二.使用StbSharp创建高度图 创建一张500*500的高度图PN…

MF248:复制工作表形状到Word并调整多形状位置

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

【从零开始入门unity游戏开发之——C#篇43】C#补充知识——值类型和引用类型汇总补充、变量的生命周期与性能优化、值类型和引用类型组合使用

文章目录 一、值类型和引用类型汇总补充1、值类型和引用类型汇总2、值类型和引用类型的区别3、简单的判断值类型和引用类型 二、变量的生命周期与性能优化1、**栈和堆的区别**2、**变量生命周期**3、**垃圾回收(GC)机制**4、**代码示例与优化**4.1. 临时…

Dockerfile运行指令

1.RUN 在build构建时执行命令。 举例:安装vim Shell命令格式 RUN yum install -y vim Exec命令格式 RUN ["yum","install","-y","vim"] 2.CMD 用于设置容器启动时默认执行的命令或参数。 如果Dockerfile中有多个CMD&a…

无穿戴动作捕捉系统技术解密及多元化运用

在当今科技飞速发展的时代,动作捕捉技术不断革新,无穿戴动作捕捉系统崭露头角。与传统粘贴标记点的动作捕捉技术相比,无标记点动作捕捉技术具有显著优势。它能够在确保高精度捕捉的前提下,以非接触的方式极大地提升被捕捉对象的表…

计算机网络 (10)网络层

前言 计算机网络中的网络层(Network Layer)是OSI(开放系统互连)模型中的第三层,也是TCP/IP模型中的第二层,它位于数据链路层和传输层之间。网络层的主要任务是负责数据包从源主机到目的主机的路径选择和数据…

基于Mosquito源码理解MQTT5.0的属性概念

MQTT 5.0协议相比之前的版本(如MQTT 3.1.1)增加了很多属性,这些属性分布于报文的可变头部(Variable Header)和有效载荷(Payload)中。这些属性大大增强了协议的可扩展性和灵活性,使其能够更好地适应现代物联网应用的复杂需求。 属性的定义在源码包mosquitto-2.0.18/inc…

rk3568之mpp开发笔记记录之摄像头实时码流获取的神秘面纱

前言: 大家好,在上一篇文章里面,我给大家解读了怎么获取imx415-sensor的实时码流的细节,今天开始会解析里面到底是怎么实现的? 提前透露一点,整个摄像头驱动框架和上层调用,都会涉及到v4l2的开发…

Mac电脑python多版本环境安装与切换

我当前是python3.9.6环境,需要使用3.9.8环境,通过brew安装3.9.8版本,然后通过pyenv切换环境 步骤 1: 安装 pyenv brew install pyenv brew install pyenv-virtualenv 步骤 2: 安装 Python 3.9.8(使用 pyenv 安装指定版本的 Pyth…

小程序配置文件 —— 14 全局配置 - tabbar配置

全局配置 - tabBar配置 tabBar 字段:定义小程序顶部、底部 tab 栏,用以实现页面之间的快速切换;可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面; 在上面图中,标注了一些 tabBar …

Jupyter在运行上出现错误:ModuleNotFoundError: No module named ‘wordcloud‘

问题分析:显示Jupyter未安装这个模板 解决办法:在单元格内输入:!pip install wordcloud

github提交不上去,网络超时问题解决

问题出现的原因: DNS服务器数据不同步,github的服务器发送迁移,在本地缓存的ip地址现在无效了。 解决方案: 1)点击这里,查询github.com最新的ip地址 2.0)编辑linux系统地址缓存文件&#x…

Windows Subsystem for Linux (WSL)

目录 定义与功能 版本与特点 应用场景 启用 WSL 功能 更新WSL及其内核 下载Linux发行版本 WSL(Windows Subsystem for Linux)是微软在Windows 10和Windows 11中引入的一项功能,使用户能够在Windows上原生运行Linux的命令行工具和应用程…

图像处理-Ch5-图像复原与重建

Ch5 图像复原 文章目录 Ch5 图像复原图像退化与复原(Image Degradation and Restoration)噪声模型(Noise Models)i.i.d.空间随机噪声(Generating Spatial Random Noise with a Specified Distribution)周期噪声(Periodic Noise)估计噪声参数(Estimating Noise Parameters) 在仅…

Mac 环境 VVenC 编译与编码命令行工具使用教程

VVenC VVenC 是一个开源的高效视频编码器,专门用于支持 H.266/VVC (Versatile Video Coding) 标准的编码。H.266/VVC 是继 HEVC (H.265) 之后的新一代视频编码标准,主要目的是提供比 HEVC 更高的压缩效率,同时保持或提高视频质量。H.266/VVC…

HTML——41有序列表

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>有序列表</title></head><body><!--有序列表&#xff1a;--><!--1.列表中各个元素在逻辑上有先后顺序&#xff0c;但不存在一定的级别关系-->…

详细教程:SQL2008数据库备份与还原全流程!

数据的安全性至关重要&#xff0c;无论是操作系统、重要文件、磁盘存储&#xff0c;还是企业数据库&#xff0c;备份都是保障其安全和完整性的关键手段。拥有备份意味着即使发生误删、系统崩溃或病毒攻击等问题&#xff0c;也能迅速通过恢复功能解决&#xff0c;避免数据丢失带…

IDEA工具使用介绍、IDEA常用设置以及如何集成Git版本控制工具

文章目录 一、IDEA二、建立第一个 Java 程序三、IDEA 常用设置四、IDEA 集成版本控制工具&#xff08;Git、GitHub&#xff09;4.1 IDEA 拉 GitHub/Git 项目4.2 IDEA 上传 项目到 Git4.3 更新提交命令 一、IDEA 1、什么是IDEA&#xff1f; IDEA&#xff0c;全称为 IntelliJ ID…

STM32 I2C通信协议

单片机学习&#xff01; 文章目录 目录 文章目录 前言 一、I2C通信 1.1 I2C总线 1.2 I2C通信线 1.3 同步半双工且数据应答 1.4 一主多从 二、硬件电路 2.1 I2C电路模型 2.2 I2C接线要求 2.3 I2C上拉电阻作用 三、I2C时序基本单元 3.1 起始终止条件 3.1.1 起始条件 3.1.2 终止条…

在线免费批量生成 Word 文档工具

为了方便的批量生成 Word 文档&#xff0c;写了个在线 Word 文档批量生成工具&#xff0c;可以根据 Excel 数据和 Word 模板批量生成大量个性化的 Word 文档。适用于需要批量生成格式统一但内容不同的文档场景。比如&#xff1a; 批量生成证书、奖状批量生成合同、协议批量生成…