- 博客(3522)
- 资源 (11)
- 收藏
- 关注
原创 Fair-code介绍(Fair code)(一套新型软件模型:旨在“开源”&“商业可持续性”中找到平衡)
Fair-code 是一种尝试解决“开源开发者无法盈利”与“企业无偿利用开源成果”矛盾的模型。它通过保留商业化权利,为开发者提供可持续收入,同时保持代码开放和社区协作。尽管存在争议,但它为开源生态的经济可持续性提供了新思路。
2025-07-17 17:22:55
678
原创 CA证书介绍(Certificate Authority证书颁发机构:互联网受信任第三方机构,负责签发和管理数字证书,验证网络实体(网站、用户、设备)的身份,并保障通信安全)证书链、撤销列表
CA 是互联网安全的基石,通过数字证书实现身份认证和加密通信。无论是访问 HTTPS 网站、下载软件,还是企业内部系统,CA 都在背后保障信任和安全。选择合适的 CA 和证书类型(DV/OV/EV),是构建安全网络环境的关键一步。
2025-07-17 13:47:42
332
原创 SSL(Secure Sockets Layer)/TLS(Transport Layer Security)是什么?(网络通信加密协议,确保数据传输机密性、完整性和身份验证)
由网景公司(Netscape)于1990年代开发,是最早的加密协议之一。由于存在安全漏洞(如 POODLE 攻击),SSL 3.0 已被弃用。SSL 是 TLS 的前身,两者常被统称为SSL/TLS。SSL/TLS 是互联网安全的基石,通过加密、身份验证和数据完整性保护,确保用户与服务器之间的通信安全。尽管 SSL 已被弃用,但 TLS 仍在持续演进(如 TLS 1.3),成为现代网络安全的标准协议。无论是个人用户还是企业,理解并正确应用 SSL/TLS 是保障数据安全的关键。
2025-07-17 13:21:16
474
原创 HTTPS与HTTP区别、HTTPS加密细节、HTTPS服务端与客户端Python代码实现(HTTPS:HTTP over TLS/SSL)
HTTP是基础协议,速度快但安全性差。HTTPS是 HTTP 的安全升级版,通过加密和身份验证保障数据安全,已成为现代互联网的标准(97% 以上网站使用 HTTPS)。HTTPS 加密细节依赖 SSL/TLS 协议,结合非对称加密、对称加密和数字证书实现安全通信。Python 可通过和ssl模块快速实现 HTTPS 服务器和客户端,但生产环境需使用受信任 CA 的证书。如果涉及敏感信息传输(如登录、支付),HTTPS 是唯一可选方案。
2025-07-16 21:42:32
712
原创 webhook是什么?(事件驱动的通信机制,允许应用程序在特定事件发生时,主动向另一个应用程序指定 URL(称为Webhook URL或端点)发送HTTP请求,通知其事件发生并传递相关数据)
结合规则引擎(如 EMQX)实现复杂业务逻辑,例如报警触发后自动通知运维团队。
2025-07-16 20:16:07
639
原创 MQTT broker中间件(Message Queuing Telemetry Transport,消息队列遥测传输协议)QoS、Paho(物联网通信的核心基石)
MQTT作为物联网领域的基石协议,凭借其轻量化、可靠性和灵活性,正在重塑工业自动化、智慧城市、智能家居等多个领域。随着5G和边缘计算的发展,MQTT将持续演进,为万物互联时代提供更强大的通信支撑。对于开发者而言,理解MQTT协议的工作原理和最佳实践,将是构建智能物联网系统的关键能力。相关阅读推荐MQTT Broker性能测试方法Python实现MQTT客户端Android平台MQTT应用开发声明。
2025-07-16 17:40:36
530
原创 C++嵌套锁Recursive Lock、Nested Lock使用场景(使用std::recursive_mutex替代std::mutex)(锁层次结构Local Hierarchy)递归锁
场景使用嵌套锁的原因示例类成员函数嵌套调用函数间相互调用且需要加锁成员函数A调用成员函数B,两者都需加锁递归函数递归调用中需要多次加锁遍历树结构时每次递归都需要加锁函数链式调用持有锁时调用其他需要锁的函数function_A调用function_B,两者都需加锁状态机或回调状态转换或回调中需要重复加锁状态A调用状态B,两者都需加锁分阶段处理多个阶段需要依次加锁分阶段处理共享资源,每个阶段需加锁在实际开发中,嵌套锁应谨慎使用,优先通过代码设计避免嵌套加锁的需求。
2025-07-16 12:08:19
392
原创 Postgres介绍(PostgreSQL)(开源对象关系型数据库管理系统)(与Mysql对比)
PostgreSQL 是一个功能强大的开源对象关系型数据库管理系统(ORDBMS),以其可靠性、高性能和丰富的特性而闻名。插件扩展可通过扩展(Extensions)添加新功能,例如:PostGIS:地理空间数据处理。:时序数据优化。cstore_fdw:列存储压缩。支持自定义数据类型、函数、操作符、过程语言(如 Python、JavaScript)等。存储过程:支持多种编程语言(PL/pgSQL、PL/Python、PL/JavaScript 等)编写存储过程。
2025-07-15 14:19:13
1090
原创 软件测试介绍( Software testing)(单元测试、集成测试、系统测试、验收测试、黑盒测试、白盒测试、灰盒测试、手动测试、自动化测试、非功能测试、回归测试、冒烟测试)
软件测试(Software Testing)是通过执行程序或系统,以验证其功能是否符合预期需求、发现潜在缺陷(Bug)并评估软件质量的过程。核心目标验证需求:确保软件满足用户需求和规格说明书。发现缺陷:识别代码、逻辑或功能中的错误。评估质量:判断软件的可靠性、性能、安全性等非功能性指标。降低风险:减少上线后因缺陷导致的故障或损失。软件测试是保障软件质量的关键环节,贯穿开发全生命周期。通过合理的测试策略、工具和流程,可以有效降低风险、提升效率,并为用户提供可靠的产品。
2025-07-13 18:35:56
481
原创 深圳养老/医疗缴费基数是什么意思?(社保基数、医保基数、养老基数、最低基数4492)深圳灵活就业人员就业登记与参保登记
养老保险缴费基数是职工缴纳养老保险费的基数,直接影响个人和单位的缴费金额。
2025-06-27 16:47:26
1070
原创 C++设计模式(GOF-23)——05 C++桥模式(Bridge)(将抽象部分与实现部分分离,使它们可以独立变化。通过组合(聚合)方式替代继承,避免多维度变化导致的类爆炸问题)
fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;11桥接模式通过组合替代继承,将抽象与实现分离,解决了多维度变化导致的复杂性问题。
2025-06-26 17:40:18
957
原创 C++ Mermaid语法、Mermaid符号含义(Doxygen注释添加类图)(组合Composition、聚合Aggregation、关联Association)
A <|-- B->>通过 Mermaid 的语法和符号,开发者可以在 C++ 项目中清晰地表达逻辑关系、类结构和交互流程。
2025-06-26 16:01:54
685
原创 C++设计模式(GOF-23)——04 C++装饰器模式(Decorator)(一个类同时继承和组合另一个类)解决类爆炸问题、模板装饰器
特性描述设计模式名称装饰器模式(Decorator Pattern)核心思想通过继承和组合动态扩展对象功能优点- 避免继承的类爆炸- 动态、灵活地添加功能- 符合开闭原则适用场景需要动态扩展对象功能,且功能可以独立组合。
2025-06-25 11:25:33
719
原创 C++设计模式(GOF-23)——03 C++观察者模式(Observer / Event、发布-订阅模式、事件模式)
观察者模式(Observer Pattern)是一种行为型设计模式,用于建立对象间的一对多依赖关系。当一个对象(被观察者)状态发生变化时,所有依赖它的对象(观察者)都会自动收到通知并更新。这种模式通过解耦通知方与接收方,实现了系统的灵活性和可扩展性。特性传统实现观察者模式对象耦合度高低扩展性需修改现有代码支持开闭原则维护成本高低通知灵活性固定调用动态注册/注销适用场景复杂度简单场景复杂系统架构观察者模式通过接口抽象和行为封装,为复杂系统提供了优雅的通信解决方案。
2025-06-24 09:59:31
1178
1
原创 C++ std::remove()、std::remove_if()、std::remove_copy()(逻辑末尾)erase-remove、remove-erase idiom
在 C++ 中,并没有直接的remove()成员函数,但可以通过头文件中的算法实现类似功能。erase()erase()调用12423533new_end。
2025-06-23 15:46:16
321
原创 Linux系统时间不对导致mysql初始化失败:Data Dictionary initialization failed.(数据字典版本验证失败)
上海107 ubuntu22.04 算能盒子硬件时钟是有电的,能够取得时间,但是初始时间未设置,为1970年,导致mysql数据初始化时失败。猜测之前的英伟达盒子,可能系统启动的时候做了个判断,如果硬件时间是1970年附近,就把硬件时钟设置为2023年2月,所以一直没问题。根据你提供的日志和描述,系统时间错误确实可能导致 MySQL 初始化失败。mysql数据初始化失败,发现系统时间是1970年,我将系统时间改成2025年,就能初始化成功了。如果问题仍未解决,请提供完整的 MySQL 错误日志和。
2025-06-20 15:52:17
979
原创 C++工厂模式的作用(工厂方法、Factory Method、Factory Pattern)
把"创建什么对象"的决策权从客户端转移到工厂,实现创建逻辑的集中管理和封装。这样代码更清晰、更容易维护,也更符合"开闭原则"(对扩展开放,对修改关闭)。
2025-06-20 09:38:23
370
原创 心理咨询师长程培训项目(Long-term Training)介绍
长程培训(Long-term Training)是针对心理咨询师系统化、专业化能力提升的培训模式,通常周期为2-4年,涵盖。
2025-06-19 18:02:27
588
原创 为什么在C++实现多态时,建议使用指针而非引用,且绝对不能用对象本身?(多态指针、多态引用)
主要原因涉及对象切片(slicing)、灵活性限制以及内存管理的复杂性。通过合理选择指针或引用,可以充分发挥多态的优势,同时避免对象切片和内存管理的陷阱。)动态分配和释放内存,适用于运行时不确定的对象生命周期。在C++中,实现多态时建议使用指针而非引用,且。:引用一旦初始化后,不能重新绑定到另一个对象。:指针可以存储在容器中,实现动态对象集合。:引用数组或容器无法动态管理对象集合。:指针可以随时指向不同的对象。
2025-06-19 14:48:42
665
原创 C++析构函数常见用法(默认析构函数、显式定义析构函数、私有析构函数、删除析构函数=delete、显式调用析构函数、显式默认析构函数=default、纯虚析构函数=0)
虚析构函数私有析构函数。
2025-06-18 17:06:15
915
原创 C++ protected保护继承、保护方法(protected方法可以被派生类访问,不能被类外部直接访问)(C++ public公有继承、C++ private私有继承)
protected方法在C++中提供了一种中间的访问权限,允许派生类访问基类的特定逻辑,同时防止外部代码直接调用。这种机制在面向对象编程中非常有用,尤其是在需要继承和扩展功能的场景中。正确使用protected可以提高代码的封装性和可维护性。
2025-06-18 15:58:29
506
原创 C++面向对象设计和面向接口设计区别(C++对象类、C++接口类)C++ Interfaces、C++接口与继承区别
特性面向对象设计面向接口设计核心对象和类接口和规范设计目标模拟现实世界,封装数据和行为解耦模块,定义统一契约实现方式类、继承、多态抽象类/纯虚类、接口实现灵活性固定类层次结构动态替换实现,灵活扩展典型应用场景单一功能模块开发多实现需求、插件化系统、跨平台适配C++ 中的实现使用class和struct使用纯虚类(面向对象设计是基础,强调数据和行为的聚合。面向接口设计是面向对象的延伸,强调规范与实现的分离。在 C++ 中,接口通常通过纯虚类实现,结合多态实现动态绑定。
2025-06-17 16:55:12
1588
原创 C++接口(C++ Interface、接口类型变量:指向抽象类的指针或引用)(通过抽象类和纯虚函数实现)(接口类命名以I开头,如:IDrawing)(虚析构函数:接口类的析构函数必须声明为虚函数)
在 C++ 中,接口的本质是抽象类纯虚函数= 0):没有具体实现的虚函数,强制派生类必须重写。抽象类:包含至少一个纯虚函数的类,不能被实例化(不能创建对象),只能被继承。public:// 纯虚函数virtual ~IDrawing() {} // 虚析构函数(必须)IDrawing是一个接口类,定义了draw()方法的规范。派生类必须实现draw()方法。在 C++ 中,接口是通过抽象类和纯虚函数实现的。
2025-06-17 16:28:10
883
原创 C++面向对象设计原则7:封装变化点(Encapsulate Points of Variation)(将系统中可能发生变化部分与稳定部分分离,通过接口或抽象类隔离变化,降低模块间的耦合度)
封装变化点的核心是通过接口隔离变化,将稳定与变化分离。通过组合(如StablePart使用接口)替代继承,降低耦合。这一原则是设计模式(如策略模式、模板方法模式)的基础,也是实现开闭原则(对扩展开放,对修改关闭)的关键。
2025-06-17 15:47:21
769
原创 C++面向对象设计原则6:优先使用对象组合(Composition)(has-a),而不是类继承(Inheritance)(is-a);组合继承、C++组合
性能敏感的场景。
2025-06-17 13:33:55
930
原创 C++面向对象设计原则4:里氏替换原则(Liskov Substitution Principle, LSP)is-a关系(子类对象必须能够替换父类对象,并且替换后程序行为不会发生改变)优先组合继承
LSP 是 C++ 中实现多态性和代码健壮性的基石。通过合理设计继承关系、接口约束以及组合替代继承,可以避免因子类行为不一致导致的程序错误。子类必须能够完全替代父类,且行为一致。
2025-06-16 18:04:55
635
原创 C++move()含义(C++ move())C++移动语义(将左值转换为右值引用,触发移动语义,避免深拷贝,提升性能)
作用:无论传入的是左值还是右值, 都会将其转换为右值引用()。注意: 本身不执行任何移动操作,它只是通过类型转换为后续的移动构造函数或移动赋值运算符提供条件。2. 移动语义的核心思想移动语义是 C++11 引入的一种资源管理机制,其核心是:2. 触发移动构造函数/赋值运算符:移动构造函数或赋值运算符会“窃取”原对象的资源(如指针、句柄),并使原对象进入有效但未定义的状态。示例代码(自定义类):3. 资源转移后原对象的状态:原对象的资源被“窃取”后,其状态变为有效但未定义(例如
2025-06-16 13:37:53
641
原创 C++ powershell不打印(C++powershellC++)最好用CMD,别用powershell
您遇到的问题在Windows开发环境中相当常见,特别是当程序输出包含中文字符或大量文本时。使用CMD是最简单可靠的解决方案!(但是我的似乎又没有问题)
2025-06-16 09:57:18
622
原创 Windows批处理脚本(.bat脚本、.bat语法)关闭回显@echo off、延迟变量扩展setlocal enabledelayedexpansion
只显示命令的执行结果。默认情况下,当运行一个批处理脚本时,,然后再显示命令的执行结果。REM 这是一个注释。:: 这也是一个注释。
2025-06-13 16:07:20
643
原创 Windows控制台git文件名显示转义符而不是中文字符(解决方法:设置git禁用路径转义)git config --global core.quotepath false
【代码】Windows控制台git文件名显示转义符而不是中文字符(解决方法:设置git禁用路径转义)git config --global core.quotepath false。
2025-06-13 13:56:30
802
原创 Windows环境变量原理(用户变量与系统变量)(用户环境变量、系统环境变量)
它们的核心作用是存储配置信息,供操作系统和应用程序在运行时动态读取和使用。右键“此电脑” → 属性 → 高级系统设置 → 环境变量。在“系统变量”区域点击“新建”或“编辑”。Windows环境变量的原理可以分为。
2025-06-12 13:33:53
1015
原创 React删除评论逻辑:1、客户端立即更新UI(乐观更新)2、后台调用删除评论API
学习Demo- 专注于React状态管理学习原型阶段- 还未连接后端服务离线应用- 数据只在本地存储在实际生产环境中,建议使用乐观更新的方式,既保证用户体验,又确保数据一致性!
2025-06-11 21:25:56
607
原创 Windows使用winlibs安装MinGW-w64
注意调整优先级(上移到最上方,ps:我的会被之前装的Strawberry影响,调用到它的低版本g++)(我下载这个UCRT 64位最新版的。如果需要更完整的开发环境(如。在 Windows 上通过。架构,兼容性更好)。
2025-06-10 18:29:22
1272
原创 下载WinLibs时UCRT Runtime和MSVCRT Runtime(针对旧版本Windows)的区别
MSVCRT 是微软早期的 C 运行时库(MSVCRT.DLL),主要用于旧版 Windows 系统(如 Windows XP、Vista、7 等)。它是传统的 MinGW 工具链默认使用的 CRT。它是现代 MSVC(Visual Studio)和 MSYS2 工具链默认使用的 CRT。的区别主要在于底层使用的 C 运行时库(CRT)版本和兼容性。,并且希望使用现代 C/C++ 特性,推荐选择 UCRT 版本。例如,用 UCRT 编译的程序无法直接调用 MSVCRT 编译的 DLL,反之亦然。
2025-06-10 15:50:57
1064
原创 Windows cmd中文乱码解决方法(Windows控制台中文乱码、CMD乱码、控制台乱码、Command Prompt命令提示符cmd.exe乱码).bat闪退
要永久解决 Windows 控制台(CMD/PowerShell)的中文乱码问题,并统一使用 UTF-8 编码,可以按照以下步骤操作。通过以上方法,你可以永久解决 Windows 控制台的中文乱码问题,并确保所有终端使用 UTF-8 编码。如果仍有问题,请检查字体设置或尝试更新系统。如果不想修改系统区域设置,可以直接通过注册表调整 CMD 的默认编码。某些字体不支持中文字符渲染,需手动设置支持中文的字体(如。怎么重启后cmd还是有部分乱码?发现我好像已经创建过了?(十进制),点击“确定”。
2025-06-10 13:58:49
1546
原创 apt命令介绍
APT 是 Debian 及其衍生发行版(如 Ubuntu)中用于管理软件包的核心工具。它通过统一的接口简化了软件包的安装、更新、依赖管理等操作。以下是 APT 的详细功能、常用命令及参数说明。通过掌握 APT 命令及参数,可以高效管理系统的软件包,确保系统的稳定性与安全性。APT 自动解决依赖问题,但手动安装非官方包可能导致冲突,需手动干预。APT 支持多种参数,用于控制命令行为。此命令可能修改系统架构(如跨版本升级),建议备份数据后再操作。大多数 APT 命令需要。
2025-06-09 16:50:01
782
原创 Docker存储:应该改/etc/systemd/system/docker.service.d/docker.conf(√)还是/lib/systemd/system/docker.service?
推荐修改方式:通过(drop-in 文件)管理自定义配置。避免直接修改(系统默认文件)。关键操作:修改后运行和使配置生效。如果有其他需求(如调整日志路径、网络配置等),也可以在 drop-in 文件中追加参数。
2025-06-09 11:46:50
728
原创 为什么React列表项需要key?(React key)(稳定的唯一标识key有助于React虚拟DOM优化重绘大型列表)
属性让 React 能够高效、准确地管理列表更新,这是 React 虚拟 DOM 算法的重要组成部分。在你的评论系统中,使用。当你渲染一个列表时,React 需要知道哪些项目发生了变化、被添加或被删除。如果列表项包含有状态的组件(比如输入框),没有。作为 key 是完全正确的做法。在 React 中添加。
2025-06-07 22:30:40
946
Dify+DeepSeek - Excel数据一键可视化(创建步骤案例)-DSL工程文件(可直接导入)
2025-03-05
Dify+DeepSeek - Excel数据一键可视化(创建步骤案例)-Markdown示例文件
2025-03-05
auto.js安装包:app-v6-armeabi-v7a-release-unsigned-signed.apk
2024-02-11
auto.js安装包:app-v6-universal-release-unsigned-signed .apk
2024-02-10
raid卡配置教程(基于Ubuntu 20.04 操作系统安装指导书 (鲲鹏 920 处理器)安装)
2023-12-12
Ubuntu 20.04 操作系统 安装指导书 (鲲鹏920处理器)
2023-12-12
ffmpeg h264编码格式测试视频
2023-12-10
vsftpd-3.0.5
2022-08-22
Intel-RealSense-D400-Series-Datasheet
2019-07-29
CMD_right_click_key_menu_with_administration.reg
2019-08-29
为什么C++对整型常量的指针用const_cast并修改值后,出现了两个不一样的值?
2023-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人