摘要: 1. 软件设计中的坏味道(对应原书第7章) 核心理解: 抽象不足:业务代码中掺杂过多细节,导致代码僵化、脆弱、难以理解和维护。 业务逻辑应调用功能,而非实现功能:业务逻辑应通过调用功能接口来完成,而不是直接实现功能细节。 功能抽象为接口,业务逻辑组合接口:功能应抽象为接口,业务逻辑通过组合和调度这些 阅读全文
posted @ 2025-02-20 06:46 荣-- 阅读(153) 评论(0) 推荐(0)
摘要: 目录概述PyTorch框架MNIST数据集讨论:什么是神经网络,它是怎样识别图片的训练过程分层输出层softmax归一化:让输出层的每个节点取值0~1之间,总和为1训练:缩小差值回顾:batch激活函数:非线性转换代码安装依赖库代码执行结果扩展: 在28*28的画布上手写数字进行识别:三轮训练的预测 阅读全文
posted @ 2025-02-18 22:57 荣-- 阅读(1518) 评论(1) 推荐(0)
摘要: 目录概述OpenCV安装openvc素材案例1:图片的维度与通道代码补充案例2:图像的彩色通道概述代码执行结果案例3:图像的裁剪代码执行结果案例4:使用OpenCV的绘制功能代码执行结果案例5:均值滤波概述代码执行结果案例6:图像特征的提取代码执行结果案例7:模板匹配概述代码执行结果补充案例8:图像 阅读全文
posted @ 2025-02-17 23:53 荣-- 阅读(136) 评论(0) 推荐(0)
摘要: 目录《代码大全2》中的核对表《代码大全 2》《代码大全 2》的核对表需求架构前期准备主要的构建实践软件构造中的设计类的质量高质量的子程序防御式编程伪代码编程过程使用数据的一般事项变量命名基本数据类型使用不常见数据类型的注意事项组织直线型代码使用条件语句循环不常见的控制结构表驱动法控制结构相关事宜质量 阅读全文
posted @ 2025-02-16 16:02 荣-- 阅读(113) 评论(0) 推荐(0)
摘要: dab-adapter-cpp的类图: classDiagram class dispatcher { <<class>> } class dabBridge { jsonElement dispatch() } class dabMQTTInterface { -dabBridge bridge 阅读全文
posted @ 2025-02-05 21:43 荣-- 阅读(42) 评论(0) 推荐(0)
摘要: 目录概述DAB::dabclientdef宏def宏的展开nativeDispatch类类的模板参数构造函数参数最后两个模板参数的推导特化发生的时机std::string_viewstd::initializer_liststd::is_same_v 概述 dab-adapter-cpp 是一个 C 阅读全文
posted @ 2025-02-05 19:54 荣-- 阅读(117) 评论(0) 推荐(0)
摘要: CRTP(Curiously Recurring Template Pattern,奇异递归模板模式)是 C++ 中的一种设计模式。 基本概念 CRTP 是指一个类(通常是基类)以其派生类作为模板参数的模式。其基本形式如下: template <typename Derived> class Bas 阅读全文
posted @ 2025-02-05 19:14 荣-- 阅读(476) 评论(0) 推荐(0)
摘要: 说在前面的话 本文整理自不坑老师的视频公众号。 为什么要搭建本地环境 deepseek访问时,会出现系统繁忙 我们希望能搭建一个本地知识库,让AI格局自己的知识来进行创作 下载ollama ollama是什么 ollama的下载 官网下载: Download Ollama on Windows 特点 阅读全文
posted @ 2025-02-04 22:01 荣-- 阅读(1876) 评论(0) 推荐(0)
摘要: DAB C++ 版本设计模式应用实践 1. 命令模式 (Command Pattern) 设计目标 模块解耦:实现各模块独立编译、测试、运行,消除模块间直接依赖 扩展准备:为桥接模式实现奠定基础 依赖倒置:通过命令对象反转模块依赖方向 耦合降低:将模块间耦合简化为命令对象耦合 1.1 MQTT 模块 阅读全文
posted @ 2025-02-01 09:15 荣-- 阅读(249) 评论(0) 推荐(1)
摘要: 本文介绍了 DAB协议实现的开发过程。由于设备认证需要,团队面临了开发 DAB 软件的紧迫任务。 项目初期,团队深入学习了 DAB 协议,整理出 28 个核心接口,并提出了改进建议,成功推动了协议的优化。随后,团队设计了两套实现方案,最终选择复用设备内部的 MQTT 服务,尽管带来了安全风险,但通过云端授权和超时关闭机制有效缓解了问题。 在技术选型上,团队选择了 Node.js 以缩短开发周期并复用现有功能。尽管 Node.js 版本成功支撑了多个设备的认证,但仍存在部分设备不支持 Node.js 以及跨部门协调复杂的问题。为此,团队开发了第二版 DAB,采用 C++ 实现,解决了 Node.js 的局限性,并通过适配层实现了多平台支持。 开发过程中,团队通过单元测试、灵活的部署策略和适配层设计,显著提升了开发效率和质量。尽管项目取得了成功,但仍存在一些遗憾,如嵌入进程的部署方式增加了安全依赖,以及与实践结合的时机较晚。 最终,DAB 的开发不仅解决了技术难题,还优化了团队协作和项目管理流程,为未来的设备自动化测试奠定了坚实基础。 阅读全文
posted @ 2025-01-31 21:36 荣-- 阅读(605) 评论(0) 推荐(0)