- 博客(86)
- 收藏
- 关注
原创 自动化解放双手:初学者用 go-kratos-admin + protoc-gen-typescript-http 生成前端接口,快速搭建企业级 Admin 系统
本文介绍了如何利用go-kratos-admin框架和protoc-gen-typescript-http工具快速搭建企业级管理系统。go-kratos-admin是一个基于Go和Vue3的全栈Admin框架,内置用户管理、权限控制等企业级功能;protoc-gen-typescript-http则能自动生成类型安全的前端接口代码。文章详细演示了从环境准备、项目启动到接口生成的全流程,展示了这套组合工具如何显著提升开发效率,解决前后端联调痛点,实现"协议驱动"的开发模式。
2025-12-05 22:47:15
773
原创 C++ 类型转换:旧风格与四种新风格详解
本文详解C++中旧风格与四种新风格类型转换。对比C风格强制转型,重点解析`dynamic_cast`(安全向下转型)、`static_cast`(通用显式转换)、`const_cast`(去除常量性)和`reinterpret_cast`(底层比特转换)的语法、用途及安全差异,指导开发者按场景选择更安全、可读性更强的现代C++转换方式,提升代码质量与维护性。
2025-12-05 08:52:06
286
原创 初学者友好:Go-Kratos 集成 go-crud,Ent ORM CRUD 无需重复编码,轻松上手
摘要(149字): 本文介绍如何为Go-Kratos微服务框架集成go-crud工具,简化Ent ORM的CRUD操作。通过kratos-ent-example基础项目,step-by-step指导完成:1) 理解工具分工(Kratos框架核心、Ent类型安全ORM、go-crud封装层);2) 环境准备与项目初始化;3) 集成go-crud的Ent客户端到数据层;4) 使用schema定义用户模型并自动生成代码;5) 利用go-crud预置方法实现增删改查业务逻辑。该方法可避免重复编写基础CRUD代码,显
2025-12-04 16:02:58
543
原创 初学者友好:Go-Kratos 集成 go-crud,GORM ORM CRUD 无需重复编码,轻松上手
Go-Kratos 集成 go-crud 与 GORM 实现高效 CRUD 操作 本文介绍了如何在 Go-Kratos 微服务框架中集成 go-crud 工具和 GORM ORM,以简化数据库 CRUD 操作。主要内容包括: 工具分工:Go-Kratos 作为微服务框架核心,GORM 处理 ORM 映射,go-crud 封装重复 CRUD 逻辑 环境准备: 安装 Go 1.19+ 和 Git 准备 PostgreSQL 数据库 克隆 kratos-gorm-example 项目并引入 go-crud 依赖
2025-12-04 15:21:37
930
原创 微服务技术选型:从生态架构视角看go-kratos的不可替代性
摘要: go-kratos在Go语言微服务生态中展现出独特的架构优势,通过"核心框架+生态扩展"的协同模式,系统性解决了微服务开发的五大痛点:架构统一性、组件集成复杂性、业务扩展性瓶颈、可观测性缺失及安全工具链短板。其三层架构体系(核心层定义标准、扩展层补全能力、应用层提供模板)实现了全链路一致性,包括kratos-transport的多协议通信、kratos-authn/authz的安全管控、kratos-cli的高效工具链等。该生态通过接口化设计和分层规范,既保证了标准化又兼顾灵活性
2025-12-04 09:20:50
965
原创 如何在 CentOS 7 上安装 OpenCV
本文介绍了在CentOS 7上安装OpenCV的详细步骤:1)安装开发工具和依赖项;2)下载并解压OpenCV源码;3)编译安装到/usr/local目录;4)配置pkgconfig路径和环境变量。通过执行一系列yum、cmake3和make命令,完成OpenCV的完整安装过程。
2025-11-28 11:34:53
399
原创 怎样在Ubuntu下面安装Clang
文章摘要: 本文详细介绍了在Ubuntu系统下安装Clang编译器的完整步骤。首先解释了LLVM项目的背景及其子项目构成,重点介绍了Clang作为LLVM前端编译器的作用。然后提供了具体的安装方法:包括获取系统版本信息、添加LLVM软件源、查找软件包以及安装Clang及相关工具链(lld、lldb等)。文章还介绍了多版本管理方法,使用update-alternatives工具切换不同版本的Clang编译器。最后给出了查看已安装Clang版本的方法。
2025-11-28 11:34:16
330
原创 安装QT开发环境
Qt是一套跨平台C++开发框架,支持Windows、Linux、macOS等系统。提供开源版和商业版两种授权方式:开源版基于GPL/LGPL协议免费使用,商业版需付费但提供更多功能和技术支持。安装方式包括在线安装器(推荐普通用户)、离线安装器和源码编译三种。国内可通过清华、中科大等镜像站加速下载。Qt 6.8.0开始支持VS2022,早期版本最高支持VS2019。安装时可使用代理参数指定镜像源提升下载速度。
2025-11-28 11:33:09
369
原创 如何解压Unity WebGL游戏的UnityWebData1.0资源包
UnityWebData1.0资源包解压指南 UnityWebData1.0是Unity WebGL游戏中的资源包文件,包含游戏资产、资源和元数据。其结构分为文件头、文件信息头和文件体三部分,采用小端序存储。目前推荐使用UWDTool(Python)和unityweb(Golang)两种工具进行解压,均提供简单的命令行操作方式。解压前需注意文件签名应为"UnityWebData1.0\0",解压后可获取游戏原始资源文件。开发者可根据需求选择适合的解压工具。
2025-11-28 11:29:18
413
原创 go-kratos-admin 快速上手指南:从环境搭建到启动服务(Windows/macOS/Linux 通用)
本文提供了go-kratos-admin企业级Admin全栈解决方案的跨平台部署指南,重点介绍了脚本驱动的快速安装方法。主要内容包括: 前置检查清单(权限、网络、磁盘空间要求) 核心脚本解析(各系统专用准备脚本及功能说明) 分系统环境搭建步骤(Windows、Linux各发行版、macOS) 两种后端服务启动模式: 全Docker部署(推荐新手) 混合部署(中间件Docker+服务本地运行) 指南详细说明了各系统脚本执行方法、常见问题解决方案及验证步骤,帮助用户快速完成从环境搭建到服务启动的全流程。特别强调
2025-11-28 11:26:23
524
原创 go-kratos-admin 技术栈深度解析:为什么选 Golang+Vue3 这套组合?
《go-kratos-admin技术栈解析:Golang+Vue3的企业级选择》 摘要: go-kratos-admin采用Golang+Vue3全栈技术组合,精准匹配企业级管理系统需求。后端基于Golang生态(go-kratos+ent/gorm+wire),提供高性能并发处理、微服务扩展能力和灵活ORM方案;前端选用Vue3+TS+Antdv,通过组合式API和丰富组件提升开发效率。该组合实现了性能与开发效率的平衡,支持多租户隔离、权限控制等企业级特性,既满足快速开发需求,又为系统扩展预留空间,是企业
2025-11-27 19:55:51
532
原创 如何在Word文档中批量添加汉字注音
Word文档批量汉字注音方法摘要 本文介绍了在Word文档中批量添加汉字注音的两种方法:调用Office功能和直接修改docx文件。重点讲解了通过VBA调用Office API的实现方案: 使用FormatPhoneticGuide宏批量添加默认样式注音 利用Range.PhoneticGuide方法清除或自定义注音样式 通过Golang搭建拼音转换服务,配合VBA实现精准拼音获取 文章提供了完整的VBA代码示例,包括: 批量注音和清除注音的宏 调用RESTful拼音服务的封装函数 中文字符判断方法 该方案
2025-11-27 09:26:23
267
原创 如何使用 Golang 查询 MongoDB
本文介绍了如何使用Golang操作MongoDB数据库。主要内容包括:1) 建立MongoDB连接的方法;2) 插入单个文档和批量插入文档的实现;3) 查询单个文档的操作。文章通过代码示例展示了如何定义数据模型、建立数据库连接、执行插入和查询操作等关键步骤。所有示例均使用官方的MongoDB Go驱动,并采用结构体标签来映射MongoDB文档字段,提供了实用的数据库操作参考。
2025-11-27 09:24:03
439
原创 ASIO 定时器完全指南:类型解析、API 用法与实战示例
ASIO定时器提供高性能异步定时功能,支持4种核心类型:deadline_timer(基于Boost旧时间)、steady_timer(稳定时钟)、system_timer(系统时钟)和high_resolution_timer(高精度时钟)。关键API包括设置到期时间(expires_after/at)、同步/异步等待(wait/async_wait)和取消操作(cancel)。典型应用场景包括心跳检测(steady_timer)、系统时间相关任务(system_timer)和高精度定时(high_res
2025-11-26 09:47:37
329
原创 代码特殊注释完整规范:IDE 支持、使用示例与团队协作指南
本文提供了代码特殊注释的完整规范指南,包含注释类型表格、使用示例、IDE配置方法和团队协作规则。主要内容包括:1) 17种注释类型的详细说明及IDE支持情况;2) C++代码中的规范使用示例;3) VS Code、Visual Studio和JetBrains的配置方法;4) 团队协作中的边界划分、清理机制和跨IDE兼容建议。通过这套规范,可实现代码注释与任务管理的有效联动,提升开发效率和团队协作质量。
2025-11-26 09:24:48
1047
原创 本地部署Docker开发环境
Docker本地开发环境部署指南 本文总结了常用数据库的Docker本地部署方法,包括关系型数据库(MySQL、PostgreSQL等)、图数据库(Neo4J)和时序数据库(InfluxDB、TimescaleDB)。详细介绍了各数据库的Docker镜像拉取命令、容器运行参数配置、网络设置以及基本使用说明。特别说明了不同Shell环境的换行符差异,并提供了Citus分布式数据库集群部署方案。所有数据库容器均配置了默认账号密码和端口映射,便于快速搭建本地开发测试环境。
2025-11-26 08:59:56
292
原创 Go 接口与代码复用:替代继承的设计哲学
Go语言通过接口和结构体组合实现代码复用和多态,取代传统面向对象语言中的继承机制。文章对比了C++和Go的实现方式:1) Go接口采用隐式实现,结构体只需实现接口所有方法即可自动满足接口;2) 通过结构体嵌入(组合)实现代码复用,避免继承的耦合问题。文中提供了Banana和Bus的完整示例,展示如何定义接口、实现结构体、使用工厂方法,以及通过嵌入复用代码。Go的设计哲学"组合优于继承"使代码更简洁灵活,解决了多重继承的歧义问题。
2025-11-25 11:11:31
1007
原创 Golang 并发模式:扇入、扇出
本文介绍了Golang中的两种并发模式:扇入(fan-in)和扇出(fan-out)。扇入模式通过select语句将多个数据源合并到单一通道,适用于需要聚合多个事件流的场景。扇出模式则使用工作池将数据分发到多个worker进行处理,文中通过Processor和Worker结构实现了一个工作池示例。文章详细说明了两种模式的实现方法,包括数据生成器、通道处理和工作分配机制,并指出了实际应用中需要注意的背压处理和负载均衡问题。这些并发模式能帮助开发者构建高效的非阻塞程序。
2025-11-25 10:42:40
249
原创 Golang模块版本管理
摘要:Golang模块版本管理遵循语义化版本控制,通过版本号反映模块稳定性和兼容性。版本号分为开发中(v0/伪版本)、预发布版、主版本(不兼容更新)、次版本(兼容更新)和补丁版(不影响API)。Git管理模块版本通过打标签实现,子模块版本需单独打标签。开发者应理解版本号含义,确保模块升级时的兼容性。
2025-11-25 10:41:55
290
原创 Python修改pip的软件源
Python修改pip源的摘要 本文介绍了修改pip软件源的方法。提供了国内常用软件源列表,包括豆瓣、腾讯、阿里、网易、清华等镜像地址。说明两种使用方式:临时使用(通过-i参数)和永久修改(使用pip config set命令)。给出了设置清华源、阿里源、腾讯源和豆瓣源的具体命令示例。这些方法可帮助开发者解决国内访问官方源速度慢的问题。
2025-11-25 10:39:37
376
原创 Qt 6 实战:C++ 调用 QML 回调方法(异步场景完整实现)
本文介绍了在Qt 6中实现C++与QML异步通信的完整方案,重点讲解了如何通过回调函数实现异步操作结果的通知。文章包含两个核心部分:首先详细说明了C++服务类的实现,包括继承QObject、添加Q_OBJECT宏和使用Q_INVOKABLE标记方法等关键配置;然后展示了如何将C++单例注册到QML上下文中。方案采用QtConcurrent::run实现后台线程处理,通过QMetaObject::invokeMethod确保回调在主线程执行,解决了线程安全问题。文中还提供了自定义错误类和登录响应类的实现,使数
2025-11-25 09:29:31
935
原创 如何 Docker 化一个 GO 应用程序
本文介绍了如何将Go应用程序Docker化的最佳实践。首先从基础alpine镜像开始,通过多阶段构建优化镜像大小:第一阶段使用Go环境编译应用,第二阶段仅包含运行所需的精简环境。文章还强调了安全实践,建议创建专用用户而非root运行容器。最终提供了一个通用Dockerfile模板,包含依赖管理、权限设置和入口点配置,适用于大多数Go应用程序的容器化部署。
2025-11-24 10:12:35
699
原创 怎样在Go语言中生成随机种子
本文比较了Go语言中生成随机种子的几种方法:1) time.Now().UnixNano存在碰撞风险;2) maphash.Hash和cryptoRand.Read无碰撞;3) 通过随机字符串映射的方法也无碰撞。测试结果表明,基于时间的种子方法可靠性较低,而哈希和加密随机数生成方法更可靠。文章提供了每种方法的代码示例和性能对比,为需要高质量随机种子的开发者提供了实用参考。
2025-11-24 10:12:05
543
原创 如何在MacOS下安装Flutter开发环境
本文介绍了在MacOS系统下搭建Flutter开发环境的完整步骤。主要内容包括:安装Xcode、Android Studio和VS Code等必备工具;通过Homebrew安装Flutter SDK;配置CocoaPods;以及测试开发环境和解决常见问题(如Xcode安装不完整、网络错误等)。文章还提供了国内用户需要的镜像源设置方法,帮助开发者顺利完成Flutter开发环境的配置。
2025-11-24 10:11:16
564
原创 怎样在Ubuntu下面安装GCC
本文介绍了在Ubuntu 20.04 LTS系统下安装和管理GCC编译器的方法。主要内容包括:通过build-essential安装默认GCC 9或指定安装GCC 10;使用update-alternatives工具管理多个GCC版本(如9和10),包括创建软链接、切换版本等操作;最后验证安装结果并查看版本信息。文章提供了完整的命令示例和参考资料,适合需要安装或管理多版本GCC的Ubuntu用户参考。
2025-11-24 10:10:43
283
原创 怎样在MacOS下安装游戏引擎Godot 4
本文介绍了在MacOS系统下安装Godot 4游戏引擎的两种方法:官网下载安装和brew安装。对于官网安装方式,详细说明了.Net SDK的安装步骤、Godot 4的下载选择、安装过程以及命令行配置方法。对于brew安装方式,则介绍了如何通过brew命令安装Godot及其.Net版本。文章还提供了如何从命令行启动Godot项目的实用技巧,并附有相关参考资料链接。这些步骤可以帮助开发者快速在Mac上搭建Godot 4开发环境。
2025-11-24 10:10:06
984
原创 使用高德地图实现地理围栏
地理围栏技术通过虚拟边界实现位置监控,当设备进入特定区域时可触发通知。开发时需注意不同地图平台使用的坐标系差异:WGS-84(GPS标准)、GCJ-02(高德/谷歌中国)和BD-09(百度)。地理围栏数据采用GeoJSON格式,支持点、线、多边形等几何图形,并可设置有效期和工作日限制。实现时需确保坐标系统一,并遵循各平台的数据规范要求,以准确判断设备位置状态。
2025-11-23 10:08:21
1035
原创 C++ IDE:最适合 C++ 初学者的 IDE 是什么?
C++初学者选择IDE时,Qt Creator、NetBeans、Code::Blocks、Visual Studio Code和Eclipse CDT是五大推荐选项。这些IDE提供代码编辑、调试和编译功能,部分支持跨平台开发。在线IDE如JDoodle、OnlineGBD等则适合快速入门和小型项目。选择时需考虑功能、成本、系统兼容性及硬件配置。Qt Creator适合UI开发,Visual Studio Code轻量且扩展性强,Code::Blocks开源免费,Eclipse CDT适合协作开发。在线ID
2025-11-23 10:06:22
448
原创 Flutter切换源
本文提供了Flutter切换国内镜像源的详细指南。列出了上海交大、清华大学、OpenTUNA等6个国内镜像源的PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL配置,以及3个Flutter Git仓库地址。针对Linux、macOS和Windows系统分别给出了环境变量配置方法:Linux/macOS通过修改bashrc/zshrc文件,Windows使用set/setx命令设置临时或永久环境变量。文末附有官方文档和开源镜像站点参考链接,帮助开发者解决国内网络环境下使用Flutt
2025-11-23 10:05:33
350
原创 Git设置网络代理
本文介绍了Git设置网络代理的相关命令,包括HTTP/HTTPS代理的设置与取消方法,以及查看不同层级配置信息的操作。通过简单的git config命令可以快速配置代理服务器地址,或取消已有代理设置。同时提供了查看系统级、用户级和仓库级配置信息的命令,便于开发者管理Git网络连接设置。这些命令对于需要通过代理访问Git仓库的场景非常实用。
2025-11-23 10:04:34
161
原创 Golang设置网络代理
本文介绍了在Golang中设置网络代理的方法。主要内容包括:打开模块支持、取消代理和校验、设置私有仓库例外,以及配置不同代理服务(如官方全球代理、七牛云、阿里云等)。还提供了解决环境变量冲突的解决方案,并列出相关参考资料。这些设置可帮助开发者在国内网络环境下更高效地使用Go模块功能。
2025-11-23 10:03:50
407
原创 Excel表格七种配色组合
本文展示了Excel表格的七种专业配色组合方案,每种配色都通过示例图片直观呈现。从简约商务风格到多彩对比设计,这些配色方案适用于不同场景的数据可视化需求,帮助提升表格的专业性和可读性。原文链接提供了更详细的配色应用说明。
2025-11-22 11:00:41
190
原创 游戏字体渲染
本文介绍了三种主流的字体渲染技术:位图字体(Bitmap Font)、矢量字体(Vector Font)和SDF/MSDF字体。位图字体通过纹理图集存储字符UV信息,但放大后会模糊;矢量字体使用数学曲线描述字形,可任意缩放不变形;SDF/MSDF字体则通过距离场算法,在低分辨率下也能呈现高质量渲染效果。文章还详细讲解了常见的字体格式(TTF/EOT/OTF/WOFF/SVG)及其特点,并比较了不同技术的优缺点。
2025-11-22 10:59:53
973
原创 golang微服务框架Kratos实现消息队列
本文介绍了在Golang微服务框架Kratos中实现消息队列的方法。消息队列(MQ)具有异步、削峰和解耦三大优势,能够有效处理瞬时流量和简化服务间调用关系。由于Kratos(v2.2.1)尚未原生支持消息队列,作者从Go-Micro框架提取Broker功能,实现了支持Kafka、RabbitMQ、NATS等多种协议的kratos-transport库。该库提供编解码器、消息队列客户端和Kratos Server封装三部分功能,并给出了Kafka的示例代码。这种实现方式既保持了Kratos的轻量级特性,又扩展
2025-11-22 10:54:51
637
原创 无头内容管理系统 Headless CMS
文章摘要 Headless CMS(无头内容管理系统)是一种将内容管理与内容呈现分离的新型CMS架构。与传统CMS(如WordPress)不同,它通过API提供内容,使内容可跨多种平台和设备重复使用。Headless CMS具有开发灵活、内容可重用性高、安全性强等优势,特别适合需要多平台内容分发的场景,如网站、移动应用、数字标牌等。与传统CMS相比,它采用模块化架构,支持敏捷开发,能有效降低技术债务。这种架构包含内容存储库、API和前端应用三个核心组件,为开发者和内容创作者提供了更大的协作空间和工作效率。
2025-11-22 10:50:08
766
原创 基于 Go-Kratos 与 MCP 的推荐服务实战指南
基于 Go-Kratos 与 MCP 构建模块化推荐服务 本文介绍了如何利用 Go-Kratos 微服务框架与 MCP(模块化协同协议)实现可扩展的推荐系统。项目采用"框架赋能+协议规范"的协同模式,通过 Kratos 提供全链路微服务支持,MCP 协议实现标准化模块交互。核心内容包括: 技术架构:Kratos 框架与 MCP 协议的无缝集成,形成模块化开发模式 服务设计:基于 MCP 工具注册机制实现推荐服务标准化接口 流程编排:通过 MCP 上下文串联召回、排序、过滤等模块 部署实践
2025-11-22 10:46:50
1180
原创 Kratos微服务框架下的认证和鉴权
本文探讨了微服务架构下的认证与鉴权策略,对比了单体应用与微服务在安全性方面的差异。作者分析了认证(Authentication)与鉴权(Authorization)的区别,并提出了在Kratos微服务框架下的解决方案。推荐采用拆分认证服务进行全局认证,在API网关进行鉴权的策略。技术选型上使用JWT实现无状态认证,Casbin进行权限控制,并通过Kratos中间件实现。文章详细介绍了JWT和Casbin的特性与注意事项,并展示了如何实现SecurityUser来创建JWT令牌和权限管理。
2025-11-21 09:13:04
839
原创 Kratos微服务框架下的TLS单向和双向认证
SSL/TLS认证技术摘要 SSL/TLS是保障网络通信安全的加密协议,SSL证书作为数字文档将网站身份与密钥对绑定,实现数据加密和身份验证。TLS 1.3是最新版本,而mTLS(双向TLS)扩展了传统单向认证,要求客户端和服务端相互验证证书。X.509是公钥证书的标准格式,广泛应用于HTTPS、电子邮件加密等领域。证书有多种格式如DER、PEM、PFX等,分别适用于不同场景。本文详细介绍了这些安全认证技术的原理和应用,包括单向/双向认证的区别、证书生成与管理等内容,为构建安全的微服务通信提供技术参考。
2025-11-21 09:11:56
278
原创 Golang微服务框架Kratos应用Pulsar消息队列
本文介绍了在Golang微服务框架Kratos中应用Pulsar消息队列的方法。首先阐述了消息队列的基本概念、应用场景(异步处理、应用解耦、流量削峰和消息通讯)以及Pulsar作为下一代云原生分布式消息流平台的关键特性。然后详细说明了Pulsar的核心组件和基本概念,并提供了Docker部署开发环境的步骤。最后重点讲解了如何在Kratos框架中集成Pulsar,既可以通过Data层仅实现消息发布功能,也可以通过Server层同时实现消息发布和订阅功能。文章还介绍了作者封装的两个Pulsar客户端库,为开发者
2025-11-21 09:11:07
616
原创 Qt 优雅实现线程安全单例模式(模板化 + 自动清理)
本文介绍了一种在Qt中实现线程安全单例模式的优雅解决方案,采用模板化设计+自动清理机制。该方案具有以下特点: 线程安全:使用QMutex保证多线程环境下的安全访问 自动清理:通过SingletonManager统一管理所有单例的清理回调 通用性强:模板化设计支持任意类作为单例 灵活构造:支持带参数的构造函数,使用完美转发技术 安全校验:提供编译期检查和运行时断言 实现分为两部分:SingletonManager负责统一管理清理回调,Singleton模板类封装通用单例逻辑。该方案避免了重复编码,确保资源安全
2025-11-21 00:07:59
667
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅