自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

goodparty的专栏

想写就写,就是随性

  • 博客(106)
  • 资源 (28)
  • 收藏
  • 关注

原创 深度长文:万亿级分布式权限系统 Zanzibar 的全量工程实践与架构指南

本文深入剖析了Google Zanzibar权限系统的核心思想与工程实践。首先介绍了权限系统从RBAC到ReBAC再到Zanzibar的演进过程,重点解析了Zanzibar的关系元组(Relation Tuple)模型,将权限计算转化为图的可达性问题。针对分布式架构中的搜索难题,提出了"读时扩展"方案,将权限引擎与搜索引擎解耦。在一致性方面,详细阐述了Zookies协议解决"新敌问题"的机制。此外,还分析了多层缓存架构设计、负向缓存策略等优化手段,并给出了工程实现的实

2025-12-29 15:56:57 343

原创 从 BERT 到 GPT/Gemini:为什么“接龙”成了通往 AGI 的唯一钥匙?

计算机的世界是由0和1构成的。而在 AI 的世界里,万物(文字、图片、视频)都被转化成了向量(Vector)。Embedding (嵌入):把一个词变成一串浮点数,这就像是做了一次强制类型转换(Type Casting)。Scaling Law (规模定律):只要我们给这些向量提供足够的算力去玩“接龙”,它们就能涌现出类似人类的推理能力。AI 的进化史告诉我们,“输出”是最好的学习方式。面对日新月异的技术,我们中年程序员与其焦虑地“看书”,不如像 GPT 一样,勇敢地去“输出”代码、输出博客。

2025-12-25 22:29:50 382

原创 Claude Code 配置切换工具:轻松管理多个 API 配置

本文介绍了一个用于管理Claude Code API配置的切换工具,主要解决手动修改配置文件不便的问题。该工具通过Slash Command实现一键切换配置,支持查看配置列表、显示当前配置等功能。核心实现包括Bash脚本和命令定义文件,使用前需创建配置目录并设置权限。使用时需注意:切换配置后必须重启Claude Code才能生效。工具还提供了配置备份、彩色输出等实用功能,并建议未来可扩展配置验证、编辑等进阶功能。

2025-12-24 14:50:41 871

原创 Transformer位置编码深度解析:从“失忆症“到Sin/Cos的设计智慧

本文深入解析Transformer模型中位置编码的设计原理。首先指出Attention机制本身无法感知词序,需要通过位置编码引入顺序信息。文章对比了简单编号方案的缺陷,详细分析sin/cos位置编码的优势:值域有界、周期性泛化、平滑连续。特别强调配对使用sin/cos的关键原因——避免周期性碰撞并支持相对位置计算(通过三角恒等式)。最后通过时钟类比和数学公式,阐明这种设计如何满足位置编码的核心要求:唯一性、有界性、泛化性和相对位置感知能力。

2025-12-24 13:10:47 881

原创 LeetCode 2054:两个最好的不重叠活动 —— 从暴力到优化的完整思路

摘要:本文解决最多参加2个不重叠活动以获得最大价值的问题。通过分析背包思路的局限性,提出基于区间调度的动态规划解法。核心步骤包括:按结束时间排序活动,使用动态规划计算每个活动的最优解(单独选或与前序不冲突活动组合),并用二分查找快速定位可组合的前序活动。通过前缀最大值优化将时间复杂度降至O(n log n)。关键技巧在于排序策略选择、二分查找边界处理以及前缀最大值数组的应用。

2025-12-23 11:10:36 581

原创 0-1 背包问题完全指南:从理解到模板

本文详细解析了0-1背包问题的动态规划解法。核心思路是通过状态转移方程计算不同容量下的最大价值,重点强调了一维DP必须倒序遍历以避免重复选择物品。提供了二维和一维的标准代码模板,并给出打印具体方案的实现方法。最后总结了0-1背包的解题套路:识别问题特征、套用模板(特别注意遍历顺序)、处理变种情况。文章通过示例和代码演示,帮助读者掌握0-1背包的动态规划解法及其关键实现细节。

2025-12-23 10:10:32 1077

原创 告别死记硬背:40岁程序员如何深度理解 LIS 算法?(从 $O(n^2)$ 到 $O(n \log n)$)

摘要: 本文以最长递增子序列(LIS)问题为例,探讨中年程序员如何通过“插槽重构”思维掌握算法。核心策略是固定结尾并记录最佳战绩($O(n^2)$),升级为用tails数组管理插槽以优化兼容性($O(n\log n)$)。关键点在于替换旧数字以降低准入门槛,为未来创造可能性,并通过二分查找快速定位替换位置。代码实现简洁,强调屏蔽公式、关注长度而非内容,以及根据递增类型微调二分策略。最终指出算法学习应聚焦决策思想而非细节实现,逻辑直觉才是核心。

2025-12-22 09:41:43 572

原创 终于搞懂了!Attention 机制中的 Q/K/V 到底是什么?

并查集是一种高效处理不相交集合的数据结构,支持合并(Union)和查找(Find)操作。其核心实现使用父节点数组和秩数组,通过路径压缩和按秩合并优化,使单次操作时间复杂度接近O(1)。典型应用包括连通性判断、动态连通性问题和分组聚类。文章以LeetCode 2092题为例,展示了如何处理带时间维度的并查集问题,强调按时间排序、批量处理同一时间会议以及使用Reset回退机制等技巧。掌握并查集的基本操作和优化技巧能有效解决各类连通性问题。

2025-12-20 13:42:28 1159

原创 并查集(Union-Find)套路详解

并查集是一种高效处理不相交集合的数据结构,支持合并(Union)和查找(Find)操作。其核心实现使用父节点数组和秩数组,通过路径压缩和按秩合并优化,使单次操作时间复杂度接近O(1)。典型应用包括连通性判断、动态连通性问题和分组聚类。文章以LeetCode 2092题为例,展示了如何处理带时间维度的并查集问题,强调按时间排序、批量处理同一时间会议以及使用Reset回退机制等技巧。掌握并查集的基本操作和优化技巧能有效解决各类连通性问题。

2025-12-19 09:38:24 937

原创 LeetCode 3652: 按策略买卖股票的最佳时机

本文解决了一个关于利润最大化的问题,通过修改策略数组中的连续k个元素来提升总利润。原始方法是暴力枚举所有可能的修改位置,时间复杂度为O(n²)。优化后采用前缀和预处理,将时间复杂度降至O(n)。具体步骤包括:1)计算原始利润;2)预处理价格和策略的前缀和;3)枚举所有可能的修改区间,利用前缀和快速计算修改后的利润差。该方法显著提升了计算效率,适用于大规模数据。

2025-12-18 17:24:17 613

原创 LeetCode 3573. 买卖股票的最佳时机 V - 动态规划解法详解

本文解决了一个允许做多和做空交易的股票买卖问题。给定股票价格数组和交易次数限制k,通过三维动态规划(DP)来追踪空仓、做多持有和做空持有三种状态的最大收益。状态转移方程考虑了交易完成时机,初始化时对所有j都设置持有状态以简化边界处理。最终答案为最后一天完成k笔交易且空仓时的最大收益。算法时间复杂度O(n×k),空间复杂度可优化至O(k)。关键点在于区分两种交易类型,正确处理交易计数和状态转移。

2025-12-17 22:15:15 842

原创 Casbin 权限管理深度解析:优势与最佳实践

Casbin 是一个功能强大且高效的开源访问控制库,最初为 Golang 开发,现已支持多种编程语言(Java、Python、Node.js、.NET、Rust 等)。它的核心理念是将访问控制模型与业务代码解耦,通过配置文件定义权限逻辑。// 自定义匹配逻辑Casbin 通过配置化、模型化的方式,将权限管理从繁琐的数据库操作和代码逻辑中解放出来。声明式配置:权限模型清晰可见,易于维护高性能:内存匹配,毫秒级响应极强的扩展性:支持多种模型和自定义逻辑开箱即用的高级特性。

2025-12-17 11:03:40 303

原创 LeetCode 3562: 折扣价交易股票的最大利润 - 树形DP+背包问题详解

定义dfs(u)dp0 []int // dp0[b]: 父节点不购买时,预算b的最大收益dp1 []int // dp1[b]: 父节点购买(当前节点可享半价)时,预算b的最大收益size int // 子树最大可能开销(用于剪枝)dp0[b]:父节点没买,当前子树在预算 b 下的最大收益dp1[b]:父节点买了(当前节点可半价),预算 b 下的最大收益size:子树所有节点原价之和(用于背包剪枝)一次 DFS 计算所有预算 [0, budget] 的结果,避免重复计算。树形结构→ 树形DP。

2025-12-16 12:51:51 915

原创 Golang 最常用的库介绍

本文介绍了Go语言生态中最流行的第三方库,涵盖Web框架、数据库、配置管理、日志、测试等核心开发场景。重点推荐Gin、GORM、Viper、Logrus、Testify等主流工具,分析其核心特性和示例代码,帮助开发者快速构建高效可靠的Go应用。这些精选库代表了Go社区的最佳实践,能显著提升开发效率和项目质量。

2025-12-15 23:52:42 875

原创 一文讲透XGBoost:从原理到实践的完整指南

XGBoost是一种高效的梯度提升决策树算法,通过二阶泰勒展开优化目标函数,结合正则化项防止过拟合。相比传统GBDT,XGBoost创新性地利用二阶导数信息加速收敛,并引入列块设计、缓存优化等工程技巧提升计算效率。其核心优势包括:精确贪心算法和近似算法优化节点分裂,加权分位数草图处理特征重要性,以及内置缺失值处理和列采样功能。这些理论创新与工程优化使XGBoost在准确性和速度上显著优于传统GBDT,成为机器学习竞赛和工业实践中的首选算法。

2025-12-14 21:09:38 1285

原创 深入理解 Google Wire:Go 语言的编译时依赖注入框架

本文介绍了Google开发的Go语言依赖注入工具Wire的核心概念和应用。Wire通过代码生成实现编译时依赖注入,无需运行时反射,具有类型安全、零开销等优势。文章详细讲解了Provider和Injector两大核心概念,Provider是提供依赖的普通函数,Injector是Wire生成的初始化代码。Wire能自动检测依赖关系,在编译时发现错误,生成的代码清晰易调试。与传统手动管理依赖相比,Wire简化了大型应用的依赖管理,避免了初始化代码膨胀的问题。文章还提供了Wire的安装方法和实际应用示例,展示了如何

2025-12-13 21:17:57 1083

原创 AI Vibe Coding 工具全景图:2025年最全指南

AI编程工具选型指南:本文系统梳理了当前主流AI编程工具,将其分为CLI、IDE和VSCode插件三大类。CLI工具如Claude Code、Gemini CLI适合终端用户;IDE工具如Cursor、Windsurf提供深度集成开发环境;VSCode插件如GitHub Copilot、Cline则轻量灵活。文章详细对比了各工具的价格、模型支持、适用场景等核心指标,并为不同预算和需求的开发者提供选型建议:预算优先可选免费工具如Gemini CLI,功能优先推荐Cursor IDE,团队开发则适合GitHub

2025-12-12 21:13:15 881

原创 Go语言从1.18到1.25版本功能更新详解

Go语言7年核心演进摘要 Go语言从1.18到1.25版本实现了重大功能革新和性能飞跃。1.18版本引入泛型支持,通过类型参数、泛型约束和泛型数据结构彻底改变了代码复用方式。1.19版本优化内存管理和原子操作,新增软内存限制功能。1.20版本改进错误处理和切片转数组等语法细节。后续版本持续增强内置函数、循环语义、测试框架和运行时性能,使Go在保持简洁的同时获得更强的表现力和执行效率。这一系列更新推动Go从简单的系统语言发展为兼具高性能和开发效率的现代编程语言。

2025-12-11 22:14:55 1176

原创 LeetCode 3583: 统计特殊三元组 - 从 O(n³) 到 O(n) 的顿悟之旅

摘要 本文探讨了一种高效计算满足特定条件的三元组数量的算法。原始暴力解法时间复杂度为O(n³),通过固定中间元素并动态维护左右频率表,优化至O(n)。关键步骤包括:1) 将问题转化为查找中间元素左右两侧的目标值;2) 使用哈希表快速查询频率;3) 滑动窗口动态更新频率表。算法避免了重复计算,同时注意了大数取模问题。以示例验证了方法的正确性,最终实现了从O(n³)到O(n)的时间复杂度优化。

2025-12-09 10:00:29 289

原创 一文讲透 MySQL 崩溃恢复方案设计

MySQL崩溃恢复全体系解析 本文系统讲解MySQL崩溃恢复机制,涵盖InnoDB引擎原理(Redo/Undo日志)、Binlog一致性保障、物理/逻辑备份恢复方案、高可用架构设计等核心内容。针对不同故障场景(实例Crash、硬件损坏、误删数据等)提供分钟级到小时级的恢复策略,结合RPO/RTO指标进行成本与SLA权衡分析。包含Xtrabackup实战、PITR时间点恢复等生产案例,为DBA和架构师提供从原理到实践的完整解决方案。

2025-12-08 11:53:19 892

原创 一文讲透AI应用技术选型:从原型到生产的完整决策框架

本文系统探讨AI应用工程化的全链路技术选型与实践,从数据预处理到模型部署,提出基于业务需求的精准决策框架。重点分析了PDF解析(推荐MinerU/Marker)、向量检索(BGE模型+Chroma)、LLM路由优化等关键技术环节,并以AI智能择校为例展示完整实现路径。文章强调数据工程(占开发40%时间)和评估监控的重要性,提供成本临界点(如微调ROI在日调用>1000次时显著)等量化指标,为AI应用从Demo到生产提供可落地的工程实践指南。

2025-12-06 20:35:06 789

原创 一文讲透 A2A 架构:Google 的 Agent-to-Agent 协议

Google推出的A2A协议是AI Agent间通信的开源标准框架,旨在解决当前生态中互操作性差、厂商锁定等问题。该协议基于能力导向设计,通过Agent Card声明能力,支持多种通信模式(Webhook/SSE)和任务状态管理。A2A与MCP协议互补,共同构建完整的AI Agent技术栈,提供企业级安全机制(认证/加密/RBAC)。其标准化架构为多Agent协作、任务编排和复杂工作流提供了统一解决方案,推动AI生态开放互联。

2025-12-06 19:18:38 1023

原创 LeetCode 3578:统计极差最大为 K 的分割方式数 - 深入浅出指南

摘要: 题目要求将数组分割为若干连续子段,每个子段的极差不超过k,求分割方式数。暴力枚举会导致O(n³)超时。优化思路是利用滑动窗口维护极差满足条件的连续区间,结合单调队列和前缀和实现O(n)解法。关键观察是满足条件的前置位置具有连续性,通过动态规划记录分割方式数,并同步维护窗口极差。实现时需注意边界处理和取模运算。虽然题目标记为中等,实际综合了DP、单调性和贪心思想,难度接近Hard级别。

2025-12-06 11:36:57 553

原创 从零构建即时通讯系统:Go + Vue3 实战指南

本文介绍了一个轻量级IM系统的实现方案,具有以下特点: 采用简洁架构设计,包含客户端、接入层和存储层三层架构,支持水平扩展 技术选型兼顾性能和开发效率,使用Go+Vue3技术栈,采用WebSocket+JSON通信 实现核心功能包括单聊、群聊、文件传输、离线消息等 提供完整的前后端交互协议和API接口 包含安全设计、性能优化等生产级考量 代码简洁(核心逻辑<2000行),开箱即用,支持快速部署 系统适用于需要自研IM的中小规模场景,兼顾数据安全、定制需求和成本控制,提供清晰的扩展路线。

2025-12-05 20:49:06 1379 1

原创 LeetCode 3432. 统计元素和差值为偶数的分区方案数

文章摘要 LeetCode 3432题要求统计将数组分割成两部分后,两部分和差为偶数的方案数。通过前缀和分析发现,差值的奇偶性完全取决于数组总和的奇偶性。若总和为奇数,则无解;若为偶数,则所有n-1种分割方案都满足条件。因此算法只需计算总和,时间复杂度O(n),空间复杂度O(1)。核心发现是差值的奇偶性由总和决定,与具体分割位置无关。

2025-12-05 10:09:51 190

原创 一文讲透 MinIO

MinIO是一个高性能、分布式的开源对象存储系统,完全兼容Amazon S3 API。它采用Go语言开发,具有轻量级、云原生等特点,支持多种部署模式。核心架构采用纠删码技术实现数据冗余,提供强一致性保证。相比公有云存储,MinIO在成本效益、数据主权和性能方面具有优势,特别适合私有云和本地部署场景。它广泛应用于大数据分析、AI训练、数据库备份等领域,并拥有丰富的生态系统支持。

2025-12-04 17:54:03 988 2

原创 一文讲透 MinerU:大模型时代的开源文档解析利器

MinerU是由上海人工智能实验室OpenDataLab团队开发的开源PDF解析工具,能将复杂多模态文档精准转换为Markdown、JSON等机器可读格式。该工具具备智能版面分析、多模态内容提取、OCR与多语言支持等功能,采用双后端架构,兼顾准确率和处理速度。MinerU 2.5版本仅用1.2B参数就在OmniDocBench基准上取得90.67分,超越多个顶级模型。支持命令行、Python API等多种使用方式,适用于大模型训练、RAG系统等多种场景。作为全链路开源工具,MinerU持续迭代更新,已成为文

2025-12-03 11:24:55 1129

原创 LeetCode 3625. 统计梯形的数目 II

本文介绍了如何计算给定点集中能组成梯形的四点组合数量。关键思路是: 找出所有两点线段,按斜率分组 对每组平行线段计算可能配对(C(k,2)) 排除共线、共端点等无效情况(使用容斥原理) 减去平行四边形重复计数(利用中点重合特性) 最终通过斜率分组统计和几何特性判断,高效计算出梯形数量。时间复杂度约为O(n²),适用于中等规模点集。

2025-12-03 10:24:47 472

原创 LeetCode 3623. 统计梯形的数目 I

题目要求统计从给定点集中选择四个点组成水平梯形的数量。水平梯形需满足至少一对边平行于x轴。解题关键在于按y坐标分组,计算每组内点的组合数,然后累加不同组之间的组合数。时间复杂度O(n),空间复杂度O(m),其中n为点数,m为不同y值数量。需注意整数溢出和及时取模。代码实现中,先统计各y值的点数,计算每组的边对数,再用累加技巧优化组合计算。示例验证了算法的正确性。该问题本质是组合计数,适用于类似图形计数场景。

2025-12-02 20:40:24 567

原创 [特殊字符] LeetCode 2141:如何让 N 台电脑续航最久?——“二分答案“套路一文讲透

本文通过LeetCode 2141题讲解"二分答案"算法,解决多台电脑共享电池的最长运行时间问题。核心思路是将问题转化为判定函数:给定时间t,检查所有电池贡献之和是否满足nt要求。利用二分法在[0, sum(batteries)/n]区间内搜索最大可行t值,保证单调性。文章提供了完整的Go实现,包括64位整型处理以避免溢出,并给出示例测试用例。该算法时间复杂度为O(mlogS),适用于类似求极值的优化问题,体现了二分答案在解决"最大可行值"问题中的高效性。

2025-12-01 23:00:25 622

原创 LeetCode 1590:使数组和能被 p 整除(前缀和 + 哈希表优化)

本文讲解LeetCode 1590题「使数组和能被p整除」的解题方法。该题要求移除最短子数组使剩余元素和能被p整除,考察前缀和、哈希表和模运算的应用。核心思路是利用前缀和余数配合哈希表,将O(n²)的暴力枚举优化为O(n)时间复杂度。具体实现时需要注意取模运算的负数处理、哈希表更新顺序以及边界条件判断(如不能移除全部元素)。文章提供了Go语言实现代码,并分析了时间复杂度和常见陷阱,最后给出相关扩展练习题。该解法适用于子数组和模运算相关问题,是前缀和优化的典型应用。

2025-11-30 18:28:57 1438

原创 一文讲透 RAG:从原理到实战

RAG(检索增强生成)技术通过"先检索后生成"的方式解决大语言模型的局限性,如知识更新滞后和私有数据缺失问题。其工作流程分为索引、检索和生成三个阶段,核心是将文本转换为语义向量进行匹配。文章详细介绍了词向量技术、语义搜索原理,强调数据预处理(占70%工作量)的关键作用,并提供了Python实现示例。还涵盖向量数据库、重排序优化、工具选择及部署方案,最后分析RAG的适用场景。正确使用RAG可显著提升AI回答的准确性和时效性。

2025-11-29 01:08:04 345

原创 一文讲透文件监控 Watchdog

本文介绍了文件监控的核心原理与设计思想。文件监控通过感知文件系统变化(创建、删除、修改等),在软件开发中具有重要应用。传统轮询方案存在CPU浪费、响应延迟等问题,现代操作系统提供了基于事件的API(如Linux的inotify、macOS的FSEvents和Windows的ReadDirectoryChangesW)实现高效监控。一个优秀的文件监控库需要解决跨平台抽象、事件模型统一、观察者模式实现、递归监控处理、事件合并与去重以及线程模型等关键问题。文章还通过策略模式、生产者-消费者模式等设计模式,阐述了如

2025-11-28 15:32:58 477

原创 DFS套路详解

本文系统梳理了树形DFS的三大核心套路(自顶向下、自底向上、树形DP),并以LeetCode 2872题为例详细讲解解题思路。文章指出该题采用自底向上DFS收集子树信息,配合贪心策略(当子树和能被k整除时立即切断)可获得最优解。通过分析解题步骤、复杂度及实现细节,总结出树形DFS的本质是信息在树上的传递和聚合,并提供了做题checklist和扩展练习题。掌握这些套路可有效解决大多数树形问题。

2025-11-28 09:45:30 431

原创 前缀和套路详解:从暴力到优化-以 LeetCode 3381 为例

前缀和是一种高效处理区间求和问题的技巧,通过预计算sum[i]表示前i个元素的和,将区间求和降至O(1)。以LeetCode 3381题为例,题目要求找出长度能被k整除的子数组的最大和。暴力解法时间复杂度O(n²)会超时,优化思路是按模分组:将位置按index%k分组,在每组中找最小前缀和,用当前前缀和减去最小值来更新答案。该算法时间复杂度O(n),空间复杂度O(n+k)。前缀和适用于子数组和相关问题,常见变形包括二维前缀和、差分数组等,配合哈希表等数据结构可解决更多变种问题。

2025-11-27 16:17:23 274

原创 动态规划解题套路详解 - 以 LeetCode 2435 为例

本文介绍了动态规划(DP)问题的通用解题套路,并通过LeetCode 2435题进行实战演示。DP问题通常具有计数、最值或存在性特征,并满足最优子结构、重叠子问题和无后效性。解题分为四步:1)定义状态(如坐标和余数);2)确定选择(移动方向);3)明确基础情况(起点初始化);4)建立状态转移方程。以矩阵路径问题为例,使用三维数组记录不同余数状态下的路径数,最终计算到达终点且余数为0的路径数量。该方法的时间复杂度和空间复杂度均为O(mnk)。掌握这套"状态-选择-基础-转移"的思考框架,能

2025-11-26 09:16:49 898

原创 LeetCode 1015. 可被 K 整除的最小整数 - 数学推导与鸽巢原理

摘要:这道题目要求找到由数字1组成的最小整数N(如1,11,111...),使其能被K整除。通过数学分析发现,当K能被2或5整除时无解。对于其他情况,利用同余运算和鸽巢原理,最多只需循环K次即可确定是否存在解。算法首先排除K为2或5倍数的情况,然后通过维护余数来避免大数计算,在O(K)时间复杂度和O(1)空间复杂度内解决问题。

2025-11-25 09:15:23 340

原创 算法中的二进制操作技巧汇总

本文介绍了10种实用的二进制操作技巧,包括判断奇偶性、快速乘除运算、清除/获取最低位1、数值交换、绝对值计算、判断2的幂、统计1的个数以及位掩码应用。这些技巧利用位运算的高效特性,能够显著提升算法和编程竞赛中的代码性能。每个技巧都配有原理解释和Go语言实现示例,涵盖从基础运算到位掩码等高级应用场景。掌握这些技巧有助于编写更简洁高效的代码,特别适合处理二进制相关问题和性能优化场景。

2025-11-24 08:53:11 367

原创 软删除的深度解析:从 MySQL 到 PostgreSQL 的最佳实践

本文介绍了软删除的概念及其在GORM+MySQL和PostgreSQL中的实现方式。软删除通过标记字段(如deleted_at)将记录标记为"已删除"状态而非物理删除。在MySQL中,由于NULL不等于NULL的特性,传统方案需将deleted_at默认值设为"0000-00-00 00:00:00"来保证唯一性,但存在语义不清、查询复杂等问题。PostgreSQL则可通过部分索引(Partial Index)优雅解决,仅对未删除记录(deleted_at IS NU

2025-11-23 17:47:28 802

原创 Golang Cobra 教程:构建强大的CLI应用

本文介绍了如何使用Go语言的Cobra库构建功能完整的命令行应用。Cobra是Kubernetes、Docker等知名项目采用的CLI开发框架,支持子命令结构、参数验证、自动生成帮助文档等功能。教程从安装Cobra开始,详细讲解了命令、参数和标志等核心概念,并通过创建文件管理工具的实际案例,演示了如何实现创建、列出和删除文件等子命令功能。示例代码展示了Cobra的基本用法,包括参数处理、标志绑定和交互式确认等特性,帮助开发者快速掌握构建专业级CLI应用的技能。

2025-11-23 17:12:53 1252

rust权威指南 整理 思维导图

<rust权威指南> 学习总结

2022-10-26

erlang 程序设计 源码

erlang 程序设计 源码 erlang 程序设计 源码 erlang 程序设计 源码erlang 程序设计 源码

2010-05-11

coreseek-4.1-beta.tar.gz

之前上传的coressek-3.2.14在我的centos上编译通不过。百度了下,说是不兼容GCC4.7。 又找了个coreseek-4.1,但是又遇到不能生成configure文件。再百度找到解决方案。修改完,重新打了个包。供下载。

2016-09-15

<Python编程实战:运用设计模式、并发和程序库创建高质量程序>源码

《Python编程实战:运用设计模式、并发和程序库创建高质量程序》源码。 有空可以去http://go2live.cn 踩踩,有产品研发几万篇文章。

2017-01-05

wp-super-cache 对象缓存功能修复版本(1.4.8版本)

我在使用wp-super-cache 对象缓存功能发现的bug,简单修复后能用了。具体的改动,见于博客http://go2live.cn/archives/90799.html

2016-09-04

android support repository v12

android support repository v12.太难下了。下了一天,放上来,供大家下载。

2015-03-22

mac 保护眼睛 提醒软件

自己开的一个很简单的app。用于mac上。 每隔45分钟提醒,该放松眼睛了。 目前我自己用够用了,如有特殊需求,可以评论里写。

2015-01-16

centos7 snort安装包

解压后安装 sudo rpm -ivh daq-2.0.6-1.centos7.x86_64.rpm sudo rpm -ivh snort-2.9.8.3-1.centos7.x86_64.rpm

2016-12-03

通过metaWeblog Api发布Wordpress博客 实例代码

下载下来,修改run.php 把用户名密码,博客地址改成你自己的。直接执行php run.php即可发布一篇博客到你的博客中。

2016-08-20

c语言实用程序设计100例

c语言实用程序设计100例 附有部分学习笔记 http://hi.baidu.com/bjmayor/blog/item/ddf9ef624d44c46a0d33fa39.html

2009-11-11

import-external-images.php 优化版

原版import-external-images.php 会把文章数据一次性加载下来,在博客数量多的时候,会极度地浪费内存,甚至根本跑不起来。。优化版本,一次加载500条数据。凑够100条需要导入图片的博客就停止。从而解决了这个问题。

2016-09-02

gvim7.3及相关配置资源

gvim7.3及相关配置资源

2013-05-31

cscope_maps.vim

cscope_maps,cscope_maps,cscope_maps,cscope_maps,cscope_maps,cscope_maps,cscope_maps,cscope_maps,cscope_maps,cscope_maps,cscope_maps,cscope_maps,cscope_maps,

2011-09-12

眼神快速阅读训练软件

训练软件。加速你的阅读速读,节省时间。 开发你的右脑。

2012-01-28

coreseek-3.2.14.tar.gz

coreseek-3.2.14.tar.gz 稳定版

2016-09-15

Python源码剖析.part2.rar

python源码分析。以cpython为对象,研究python的实现。

2009-05-26

wxpython in action

wxpython in action 中文翻译

2009-06-01

android-build-tools 19.1.0 linux版

android-build-tools 19.1.0 linux版

2015-09-10

dex2jar-0.0.9.15

dex2jar-0.0.9.15, 网上下的太慢了。还好以前下载过,所以拿出来做个备份。

2014-04-01

MinGW-5.1.3.exe

MinGW-5.1.3.exe msys 迷你系统 window下make。

2009-08-21

c语言函数速查手册 chm

c语言函数速查手册。函数基本上齐全。每个都有举例!

2009-11-15

isapi_rwl_x86_0059.msi

iis rewrite. 已在win2003+iis6上验证通过。

2011-09-13

coderender

用于生成高亮代码.用于生成高亮代码.用于生成高亮代码.用于生成高亮代码.用于生成高亮代码.用于生成高亮代码.

2011-03-14

Python源码剖析.part1.rar

python 源码剖析。以CPython为对象,研究python的实现。

2009-05-26

php 关键字 过滤

一个用php写的过滤类!比较简单!效率比正则高点。至少是正则的两倍效率。

2009-06-11

linux unix 命令

这是我下载过的用于学习linux/unix 最好的电子书。

2009-12-21

空空如也

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

TA关注的人

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