- 博客(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
原创 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
原创 028-ImageCompress
GIFsicle、Guetzli、LibimageQuant 的技术调研报告,包含原理分析、压缩率对比、代码实现及参数优化策略
2025-03-28 21:06:03
791
原创 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
原创 014-log4cpp
Log4cpp是C++领域最成熟的日志管理库之一,移植自Java生态的log4j,支持动态优先级控制、多输出源、自定义格式等功能。
2025-03-13 21:30:35
489
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人