自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhengtianzuo的博客

C++, Qt, UDP, TCP, ffmpeg, Android, IOS...

  • 博客(186)
  • 资源 (1)
  • 收藏
  • 关注

原创 QtQuick PC端开发实战_专栏总目录

总目录序号标题等级技术点传送门1QtQuick搭建开发环境(Windows)★☆☆☆☆☆☆☆☆☆环境2QtQuick搭建开发环境(MacOS)★☆☆☆☆☆☆☆☆☆环境3QtQuick搭建开发环境(Linux)★☆☆☆☆☆☆☆☆☆环境4QtCreator的基础用法★☆☆☆☆☆☆☆☆☆环境5QtQuick工程编译并部署(Windows)★★☆☆☆☆☆☆☆☆环境6QtQuick工程编译并部署(MacOS)★★☆☆

2020-12-21 19:16:18 3968 19

原创 QtQuick 移动端开发实战_专栏总目录

总目录序号标题等级技术点传送门1QtQuick搭建开发环境(Android)★☆☆☆☆☆☆☆☆☆环境2QtQuick搭建开发环境(IOS)★☆☆☆☆☆☆☆☆☆环境3QtCreator的移动端开发基础用法★☆☆☆☆☆☆☆☆☆环境4QtQuick工程编译并部署(Android)★★☆☆☆☆☆☆☆☆环境5QtQuick工程编译并部署(IOS)★★☆☆☆☆☆☆☆☆环境联系方式:作者郑天佐QQ2

2020-12-15 16:38:51 2084 1

原创 047-代码味道-数据模块

Data Module(又称数据模块)是一种典型的代码坏味道,表现为仅包含数据字段和简单访问方法(如 getter/setter),却缺乏业务逻辑和职责的类。它本质上是“哑数据容器”,违背了面向对象设计中“数据与行为绑定”的原则。generateReport 方法在外部类中,直接访问 EmployeeData 的内部字段(依恋情结)。核心准则:面向对象设计中,数据与操作数据的行为应共存于同一抽象层次。重构前:典型的 Data Module。数据与行为绑定,消除跨类依赖;重构后:内聚行为的数据模块。

2025-08-14 22:08:44 647

原创 046-Windows抓屏-WGC

Windows.Graphics.Capture(WGC)是微软在Windows 10 1803版本引入的高效屏幕捕获技术。该技术通过DirectX 11实现,主要流程包括:声明权限→用户选择捕获目标→创建帧池和会话→开始捕获→获取帧数据。C++实现示例展示了如何创建D3D设备、启动捕获会话并处理帧数据,支持全屏/局部捕获。优化建议包括调整帧池参数(像素格式/帧数量)和使用多线程处理。WGC提供了系统级UI选择器,简化了开发流程,是Windows平台上推荐的屏幕捕获解决方案。

2025-06-24 22:48:10 1253 1

原创 045-代码味道-数据泥团

Data Clumps(数据泥团)是代码异味中的一种典型表现,指一组数据元素(变量、参数等)频繁在多个地方成组出现,但未被封装为独立对象。参数耦合:多个参数总是一起传递(如成员变量散落:多个类中存在重复的变量组合(如订单号+用户ID+金额)逻辑分散:对数据的操作分散在多个函数中单一职责:数据操作与业务逻辑分离封装性:通过对象隐藏数据细节DRY原则:消除重复参数组合。

2025-06-05 20:31:47 729

原创 044-代码味道-数据类

Data Class(数据类)是指仅包含数据字段和简单访问方法(如getter/setter),缺乏业务逻辑和职责的类。仅有数据存储:仅包含字段定义和基础读写方法无行为逻辑:不包含数据验证、计算等业务方法低内聚高耦合:其他类需直接操作其内部数据集合管理缺陷:若包含容器类字段(如列表/字典),常缺乏封装。

2025-05-15 20:15:41 984

原创 043-代码味道-循环依赖

循环依赖(Cyclic Dependencies)是指两个或多个软件模块之间形成相互依赖的闭环关系。编译/构建困难:模块无法独立编译可维护性降低:修改任意模块可能引发连锁反应测试复杂度增加:难以进行单元测试系统僵化:扩展新功能时面临结构限制类之间的头文件相互包含(C++)方法参数/返回值类型形成闭环依赖模块初始化顺序敏感单元测试需要同时加载多个模块。

2025-04-29 20:32:30 958

原创 042-Windows抓屏-DXGI

DXGI通过Desktop Duplication API直接访问显存中的桌面帧缓冲,避免传统GDI多次内存拷贝。通过DXGI_OUTDUPL_FRAME_INFO.PointerPosition获取位置,叠加绘制系统光标图标。(流程图示意:初始化DXGI工厂→枚举适配器→获取输出复制接口→循环捕获帧→处理数据)遍历所有IDXGIOutput,为每个显示器创建独立Duplication实例。需注意内存对齐问题(RowPitch与Width*4可能不等),需逐行拷贝。D3D11设备初始化。

2025-04-24 22:01:31 1174

原创 041-代码味道-大泥团模块

Blob Module(大泥团模块)是代码坏味道中的一种典型表现,指某个类或模块承担了过多不相关的职责,导致代码结构臃肿、可维护性差。高内聚低耦合的反面教材:类中包含大量不相关的属性和方法修改风险集中:一处修改可能引发连锁反应职责边界模糊:违反单一职责原则(SRP)测试困难:难以进行单元测试和模块化验证职责分离:各模块专注单一功能可扩展性提升:新增加密算法只需修改AuthModule错误隔离:数据库问题不再影响邮件服务。

2025-04-21 22:03:03 879

原创 040-代码味道-巨型类

规模异常:代码行数超过500行,包含30+成员变量和50+方法职责混杂:同时处理业务逻辑、数据持久化、输入验证、日志记录等不同层级任务依赖复杂:与超过10个外部类产生耦合,形成蜘蛛网式依赖关系低内聚高耦合:方法间缺乏逻辑关联,修改任意功能都可能引发连锁错误。

2025-04-18 21:20:18 879

原创 039-代码味道-依恋情结

1.1 基本定义Feature Envy(依恋情结) 是一种经典的代码坏味道,表现为某个函数/方法对另一个类的数据或方法的关注度远高于其所属的宿主类。这种现象违背了面向对象设计中的"数据与行为绑定"原则,导致代码耦合度增高、可维护性下降。1.2 识别特征高频跨类调用:方法中超过30%的代码涉及其他类的属性或方法调用(特别是getter方法)数据流异常:方法处理参数对象的数据量 > 处理宿主类属性的数据量逻辑碎片化:相同业务逻辑分散在多个类中,形成隐式耦合。

2025-04-15 21:14:38 939

原创 038-flatbuffers

FlatBuffers技术调研报告。

2025-04-13 21:19:35 896

原创 037-代码味道-过度耦合的消息链

定义Message Chains指调用者需要通过连续调用多个对象的方法才能完成一个功能,例如:这种链条式调用暴露了对象内部的导航结构,导致调用者与中间对象的过度耦合。核心特征过度耦合:调用者依赖中间对象的实现细节。脆弱性:若对象关系变化(如类名或方法名修改),调用者需同步修改。可读性差:长链条降低代码可维护性。指标原始代码重构后代码调用层数3层(Department→Employee→getName)1层(Department→getFirstEmployeeName)

2025-04-10 21:52:45 916

原创 036-代码味道-上帝类

规模庞大:代码行数超过1000行功能混杂:同时处理数据存储、业务逻辑、界面交互等依赖复杂:被数十个其他类直接依赖低内聚高耦合:成员变量被多个无关方法共享使用fill:#333;color:#333;color:#333;fill:none;God Class数据持久化业务计算界面渲染日志记录。

2025-04-08 22:43:36 688

原创 035-Windows抓屏-GDI

GDI(Graphics Device Interface)抓屏基于Windows系统提供的图形设备接口,通过设备上下文(DC)实现屏幕内容捕获。

2025-04-04 22:19:00 1094

原创 034-QSharedMemory

QSharedMemory 的技术调研及实现方案,包含原理、优化策略、完整代码实现及流程图解

2025-04-03 22:46:53 554

原创 033-QtShadowDialog

QWidget实现无边框带阴影窗体技术调研报告

2025-04-02 20:20:36 630

原创 032-overlayYUV

将小尺寸YUV420文件覆盖到更大尺寸YUV420文件指定位置的C++完整实现,支持坐标设置和边界处理

2025-04-01 21:32:03 472

原创 031-valgrind

从原理到代码实现、参数优化及结果分析的Valgrind技术调研报告,结合C++示例和可视化工具使用说明

2025-03-31 21:19:05 794

原创 030-gprof

从原理到实现、从全局到细节的gprof技术调研报告,包含核心代码实现和可视化分析方案

2025-03-30 20:56:41 364

原创 029-gperftools

gperftools的技术调研结果,涵盖原理、核心模块、优化参数、代码实现及可视化分析工具使用

2025-03-29 12:58:22 965

原创 028-ImageCompress

GIFsicle、Guetzli、LibimageQuant 的技术调研报告,包含原理分析、压缩率对比、代码实现及参数优化策略

2025-03-28 21:06:03 791

原创 027-7zsfx

使用7-Zip制作Windows自解压安装包的具体方法和实现步骤,综合了多种实现方案和注意事项

2025-03-27 21:17:54 825

原创 026-zstd

Zstandard(zstd)压缩算法从原理到代码实现的技术调研报告,结合流程图、结构图及完整C++代码实现

2025-03-26 20:35:58 1311

原创 025-lz4

LZ4技术调研报告,包含核心算法解析、优化参数分析及完整C++实现

2025-03-25 20:49:07 443

原创 024-epoll

epoll全链路实现分析及代码示例,涵盖原理架构、性能优化、代码实现三个层面

2025-03-24 21:25:48 1088

原创 023-sha256

SHA256技术调研报告,包含算法原理、流程图解、优化参数分析和完整C++实现代码

2025-03-23 11:30:15 1078

原创 022-spdlog

从原理到代码实现的全方位spdlog技术调研结果,结合核心架构、优化策略和完整代码示例

2025-03-22 21:06:24 749

原创 021-TCMalloc

TCMalloc的技术调研报告,结合原理、代码实现、优化参数及性能对比的综合分析

2025-03-21 21:53:20 347

原创 020-环形队列

以下是从技术原理到代码实现的环形队列完整设计方案,包含数据结构设计、性能优化策略及测试分析。

2025-03-20 21:01:16 732

原创 019-RSA

RSA技术原理与流程

2025-03-17 22:21:07 386

原创 018-IOCP

IOCP(I/O Completion Ports)是Windows平台的高性能异步I/O模型,核心原理是通过线程池管理和完成队列实现高并发网络通信

2025-03-16 20:48:46 724

原创 017-HttpServer

关于C++ REST SDK(cpprestsdk)的技术调研报告及完整实现方案,综合了架构原理、核心功能实现、性能优化策略及可视化说明

2025-03-15 12:51:23 1275

原创 016-condition_variable

std::condition_variable实现异步执行同步等待的调研文章

2025-03-14 21:07:59 802

原创 015-SingleApplication

一篇跨平台进程单实例技术调研及实现方案

2025-03-13 21:46:05 344

原创 014-log4cpp

Log4cpp是C++领域最成熟的日志管理库之一,移植自Java生态的log4j,支持动态优先级控制、多输出源、自定义格式等功能。

2025-03-13 21:30:35 489

原创 013-Detours

Detours通过动态修改目标函数指令实现API拦截

2025-03-13 20:59:43 399

原创 012-Benchmark

关于Google Benchmark库的全面介绍及使用指南,包含完整C++代码示例和核心功能覆盖

2025-03-12 23:04:31 677

原创 011-base64

C++实现的Base64字符串加解密算法及其原理说明

2025-03-12 21:19:00 937

原创 010-Catch2

Catch2 是一个基于 C++ 的现代化单元测试框架,支持 TDD(测试驱动开发)和 BDD(行为驱动开发)模式。

2025-03-11 21:10:41 471

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除