跳到正文
Hedon Garden

Rust

共 23 篇文章,按发布时间倒序。

Rust,23 篇

20265 篇

  1. Prompt Engineering 从提示词撰写到生产治理

    生产里真正难的不是写出一句更聪明的指令,而是把 Prompt 当成可版本化、可评测、可回滚的运行时资产来管。

    AI Agent
  2. 大模型推理:KV Cache 的底层原理、挑战与应对

    本文从第一性原理出发,深入剖析了 KV Cache 的底层原理、挑战与应对,并给出了业内的常见解决方案。

    大模型
  3. AI Chatbot 追问建议组件的设计与实现

    从生成 3 个追问到选择高价值下一步,系统梳理 AI Chatbot suggestion list 的评价标准、四种实现方案,以及如何通过 ActionSpec、Selector、Writer 和 Verifier 提升可控性与稳定性。

    AI Agent
  4. ReAct 是更好的故事,Workflow 是更好的系统

    从一次电商 AI Agent 实践出发,聊聊 ReAct Agent、Workflow Agent,以及为什么业务生产系统最终还是要回到确定性。

    AI Agent
  5. Claude Code 源码解析丨从 6 个问题窥视 CC 的 Harness Engineering置顶

    仅仅拿着各种 AI 工具读 Claude Code 源码往往收效甚微,容易陷入“AI 学会了,但自己好像没学会”的困境。本文将“带着问题去让 AI 进行主题性分析”,解剖这个 AI Coding CLI 脱颖而出的原因。我们将聚焦 Prompt 结构与撰写原则、ReAct 循环的具体实现、灵活的内置工具体系以及代码修改的具体流程这几个核心点,为您提供独家深度解剖,助您不再只是“让 AI 重新认识一遍自己”。

    AI

202586 篇

  1. MySQL 底层原理丨事务的实现(及三种日志)

    本文将从第一性原理出发,深入剖析 MySQL 的事务实现原理,并详细介绍三种日志(Redo Log、Undo Log、Binlog)的原理、应用场景及使用方法。

    数据库
  2. MySQL 底层原理丨主从复制带来的新问题

    本篇将探讨主从复制带来的新问题。

    数据库
  3. MySQL 底层原理丨Online DDL

    本文以第一性原理为切入点,系统梳理 MySQL Online DDL 的核心原理、发展历程与典型实现方式,结合实际场景分析 Online DDL 的类型、适用性与性能优化策略,并剖析其底层机制与使用注意事项。

    数据库
  4. MySQL 底层原理丨锁

    本文将从底层原理出发,全面解析 MySQL 的锁机制,涵盖锁的结构、对象、类型、粒度及其背后的实现逻辑与优化原则,帮助读者构建系统性认知。

    数据库
  5. 盘点 Redis 各种数据类型

    本文系统梳理 Redis 十一种数据类型,并结合底层实现原理、关键优化细节,深入解析其高性能背后的设计智慧与技术取舍。

    Redis
  6. MySQL Binlog 实践 CDC

    本文介绍了 MySQL Binlog 的实践,包括如何使用 MySQL Binlog 进行 CDC 操作。

    数据库
  7. 分库分表 ID 生成方案

    本文深入分析 MySQL 分库分表后的主键生成难点,从唯一性、有序性、高可用等维度对比 UUID、自增 ID、雪花算法等方案,帮助读者系统理解各自优劣与实际落地考量。

    数据库
  8. 分库分表后的分页查询思路总结

    本文分析了分库分表环境下分页查询的本质难点,详细讲解了全局排序(Broadcast & Merge)、分片本地分页的误区、深分页的性能瓶颈,并对游标分页与业务折衷等优化方案进行了总结。

    数据库
  9. gRPC 原理与应用场景深度解析

    本文深入剖析 gRPC 的核心设计原理、性能优势、应用场景及其与传统 REST 架构的差异,助你真正理解它在现代分布式系统中的不可或缺地位。

    计算机基础
  10. HTTP、SSE、WebSocket、gRPC、Streamable HTTP:原理与场景全方位对比分析

    本文以第一性原理为出发点,剖析 HTTP、SSE、WebSocket、gRPC 以及 Streamable HTTP 等主流应用层协议的核心设计思想、演化动因与各自适用场景,助你真正理解它们的本质区别与选择依据。

    计算机基础
  11. 从 HTTP1.0 到 HTTP3 的演化

    本文梳理了从 HTTP/1.0 到 HTTP/3 的发展历程,介绍了各版本在连接管理、性能优化及协议升级方面的核心变化,帮助读者理解现代 Web 通信协议的演化脉络。

    计算机基础
  12. 从第一性原理掌握 UDP/TCP/KCP/QUIC

    本文将结合第一性原理,深入解析 UDP、TCP、KCP 和 QUIC 协议的设计动机、核心机制及其区别,助你真正理解它们为何而生、如何演化、彼此之间有何联系与差异。

    计算机基础
  13. traceroute 故障排查:Clash Fake IP 及其他 4 种常见原因

    通过分析 Clash Mi 的 Fake IP 模式导致 traceroute 返回全是星号的问题,深入理解 VPN 代理的工作原理和常见陷阱。

    计算机基础
  14. 从第一性原理理解 epoll

    本文跳出传统 API 层面,从第一性原理剖析 epoll 的高并发优势,阐释其通过内核态持久化管理、异步事件驱动和红黑树/链表机制,彻底解决 select/poll 线性瓶颈的内核机制与原理。

    计算机基础
  15. Go 底层原理丨网络编程

    本文立足于 Go 1.25 版本源码,系统拆解 Go 网络编程模型的底层机制,解析 Goroutine 如何实现同步代码,异步执行、net 包的核心实现,以及 I/O 多路复用背后的第一性原理,带你从源码视角理解 Go 网络高并发的秘密。

    收录于专栏「Go 底层原理」Go
  16. Go 底层原理丨channel

    本文将以 Go 1.25 版本源码为基础,系统剖析 Go channel 的底层实现,包括 hchan 数据结构、缓存队列、发送接收机制与阻塞唤醒原理,帮助读者以第一性原理深入理解 Go 并发通信的内核。

    收录于专栏「Go 底层原理」Go
  17. Go 底层原理丨锁

    本文深入剖析 Go 语言中多种锁(Mutex、RWMutex、WaitGroup、Once、Cond)的底层实现原理,结合 atomic 原子操作与 sema 信号量机制,揭示锁的本质和并发安全保障机制,帮助读者以第一性原理理解 Go 并发锁的内部运作。

    收录于专栏「Go 底层原理」Go
  18. Go 底层原理丨垃圾回收(green tea gc)

    本文基于 Go 官方资料和社区解读,全面分析 Go 1.26 起默认启用的 Green Tea GC 垃圾回收机制,包括其解决 CPU Cache Miss 的核心原理、算法的微架构优化设计、对开发实务和未来硬件的深远影响,帮助读者理解新 GC 的革命性变革。

    收录于专栏「Go 底层原理」Go
  19. Go 底层原理丨垃圾回收(三色标记法)

    本文深入剖析 Go 语言中的三色标记法垃圾回收机制,从基本原理、核心算法到运行时实现细节,系统讲解可达性分析、对象标记过程、并发与屏障机制等关键技术,帮助读者全面理解 Go GC 的设计理念与实际应用场景。

    收录于专栏「Go 底层原理」Go
  20. Go 底层原理丨内存模型

    本文基于 Go 1.25.3 源码,从第一性原理出发,深入探讨 Go 的内存模型,包括内存分配机制、实现原理、使用场景以及最新特性。

    收录于专栏「Go 底层原理」Go
  21. Go 底层原理丨interface

    本文系统解析 Go interface 的底层实现原理,剖析空接口(eface)与含方法接口(iface)的内存结构、类型方法表(itab)、动态类型匹配及多态分发机制,并探讨其设计哲学与应用场景。

    收录于专栏「Go 底层原理」Go
  22. Go 底层原理丨map(Swiss Table 版本)

    本文系统解析 Go map(Swiss Table 版本)的底层实现,涵盖控制字并行匹配、开放寻址探测、可扩展哈希、细粒度并发控制,并对比 sync.Map 的 HashTrieMap 实现。

    收录于专栏「Go 底层原理」Go
  23. Go 底层原理丨map(非 swiss 版本)

    本文系统解析 Go map(非 swiss 版本)的底层实现,涵盖数据结构、寻址与扩容、哈希冲突处理、迭代语义与适用场景,并对 sync.Map 的设计取舍与实现要点进行对照说明。

    收录于专栏「Go 底层原理」Go
  24. Go 底层原理丨slice 从第一性原理到实现细节

    本文从第一性原理出发,深入探讨 slice 的实现细节,包括 slice 的底层结构、实现原理、使用场景等。

    收录于专栏「Go 底层原理」Go
  25. 三年工作复盘丨技术篇:软件工程是什么丨(一)管理复杂度

    三年工作复盘丨技术篇:软件工程是什么丨(一)管理复杂度

    三年工作复盘
  26. 读书笔记丨《上头Obsidian:手把手教你用AI做好知识管理》

    《上头Obsidian:手把手教你用AI做好知识管理》提出了一套以“表达”为核心的知识管理方法——GAP模型:采集(Grasp)、归类(Arrange)、表达(Present)。通过明确目标、高效采集、合理归类,最终借助Obsidian与AI工具实现高质量输出,将碎片信息转化为结构化知识系统,帮助用户从“信息焦虑”走向“知识掌控”。

    收录于专栏「读书笔记」笔记
  27. 一次由 MySQL Gap 锁导致的阻塞排查实录

    记录一次线上 INSERT 被长时间阻塞的定位过程,最终确认由 MySQL Gap/Next-Key 锁引起;文中说明锁的原理与触发场景,提供 MySQL 8.0 的 datalockwaits/INNODBTRX 诊断方法、KILL 应急,以及隔离级别、索引与语句优化等规避建议。

    故障排查
  28. Q&A丨AI 视角下的后端技术重塑

    本文跟 Gemini 探讨在 AI 时代下,传统后端工程师如何结合自身优势,转型为 AI 应用开发工程师。

    ai问答
  29. 读书笔记丨《从零构建大语言模型》置顶

    通过 500 行代码实现,深入解析从零构建 GPT 风格大语言模型的完整流程:从数据处理、Transformer 架构核心、训练循环到文本生成策略,带你理解大模型背后的工程实现原理。

    收录于专栏「读书笔记」笔记
  30. 优雅重启的范式转移:从 tableflip 到 Kubernetes 的 Go 服务升级终极指南

    本文将带您踏上优雅重启的范式转移之旅,从 tableflip 的第一性原理出发,深入剖析其工作机制;然后,我们将切换视角,审视 Kubernetes 是如何以一种截然不同的哲学来定义和实现优雅;最后,我们将深入 Kubernetes 实践的每一个细节,从探针、竞态条件到有状态服务和多服务进程,为您在云原生世界中构建高可用 Go 应用,提供一份清晰、详尽的终极指南。

    解决方案
  31. 模型训练核心技巧:学习率预热、余弦衰减与梯度裁剪

    本篇深入探讨了深度学习训练中的三大核心优化技巧,学习率预热解决训练初期不稳定性,余弦衰减实现精细调整和平滑收敛,梯度裁剪防止梯度爆炸。从原理到实践,全面解析如何让模型在高维损失空间中更稳定、更高效地找到最优解。

    大模型
  32. 告别死记硬背:一份真正理解 PyTorch 核心设计的指南

    本文从 PyTorch 的核心设计出发,通过一个简单的例子,帮助读者理解 PyTorch 的核心设计,包括张量、自动求导、神经网络等。

    大模型
  33. 从 ECB 到 GCM:理解加密模式的演进

    加密模式 ECB、CBC、GCM

    加密模式
  34. 一次由公网流出带宽飙升引发的服务器性能排查实录

    本文详细记录了一次由公网流出带宽飙升引发的服务器性能故障排查。我们从监控图表入手,利用 iftop 实时追踪流量去向,并最终通过 nethogs 锁定应用。该案例揭示了新功能配置对网络资源的巨大影响,为解决类似问题提供了宝贵经验。

    故障排查
  35. 大白话解释交叉熵损失

    本篇从 LLM 训练过程概述开始,通过"教学徒写文章"的生动比喻,帮助读者理解交叉熵损失在机器学习中的核心作用,以及如何用它来评估和优化模型的预测能力。

    大模型
  36. 大白话解释 GPT 架构中的权重共享

    本篇用外语学习的比喻,深入浅出地解释 GPT 架构中的权重共享技术,从听写记忆到表达记忆,帮助你理解这个提升大模型效率的核心优化策略

    大模型
  37. Rust 多态的两种实现:Trait Bound 与 Trait Object 深度解析

    Rust 多态的两种实现:Trait Bound 与 Trait Object 深度解析

    Rust
  38. 大白话解释反向传播算法

    本篇用 CEO 追责分锅的比喻,深入浅出地解释反向传播算法的工作原理,从流水线管理到神经网络训练,帮助你理解这个深度学习的核心算法

    大模型
  39. 读书笔记丨《Fundamentals of Software Architecture》

    基于《Fundamentals of Software Architecture》内容,梳理出六步架构设计方法论,从商业理解到组织成长形成闭环,探讨架构师如何在权衡取舍中做出"最不差"的决策,以及如何通过持续交付、监控验证和复盘演进构建可持续的架构能力。

    收录于专栏「读书笔记」笔记
  40. FOSA丨17丨微服务架构

    本篇通过回答《Fundamentals of Software Architecture》第十七章的课后思考题,深入探讨微服务架构中限界上下文的核心作用、服务粒度划分的三大原则、sidecar模式的功能特性,以及编排与编舞的通信机制差异、saga分布式事务模式、微服务的敏捷性优势与性能挑战,帮助理解微服务架构的领域驱动设计理念和分布式系统复杂性,提升架构师在构建现代分布式系统时的微服务拆分能力和架构治理水平。

    架构设计
  41. FOSA丨16丨面向服务架构

    本篇通过回答《Fundamentals of Software Architecture》第十六章的课后思考题,深入探讨面向服务架构的历史驱动力与核心理念、四种主要服务类型的特征与职责、SOA衰落的关键因素分析,以及技术分层与领域分层的架构特性、领域复用与操作复用的实现机制,帮助理解面向服务架构的企业级设计原理和服务编排思想,提升架构师在构建大型企业系统时的服务化架构选择能力和SOA设计水平。

    架构设计
  42. FOSA丨15丨空间架构

    本篇通过回答《Fundamentals of Software Architecture》第十五章的课后思考题,深入探讨空间架构的命名来源与核心特征、虚拟化中间层的组件构成、消息网格与数据读写器的协作机制,以及缓存策略选择、数据冲突管理和架构特性评估分析,帮助理解空间架构的分布式计算原理和高可扩展性设计思路,提升架构师在构建高性能分布式系统时的架构选择能力和空间化设计水平。

    架构设计
  43. FOSA丨14丨事件驱动架构

    本篇通过回答《Fundamentals of Software Architecture》第十四章的课后思考题,深入探讨事件驱动架构中代理拓扑与中介者拓扑的设计差异、异步通信的优势机制、请求模式与事件模式的应用场景,以及事件类型分类、消息可靠性保障技术和架构特性支持分析,帮助理解事件驱动架构的核心设计原理和实施策略,提升架构师在构建响应式系统时的架构选择能力和事件化设计水平。

    架构设计
  44. FOSA丨13丨基于服务的架构

    本篇通过回答《Fundamentals of Software Architecture》第十三章的课后思考题,深入探讨基于服务的架构中服务数量的设计考量、数据库分解策略与变更管理机制、领域服务的容器化部署模式,以及基于服务架构的特性支持分析、弹性限制因素和架构量子扩展方案,帮助理解基于服务架构的核心设计原则和实施要点,提升架构师在构建分布式系统时的架构选择能力和服务化设计水平。

    架构设计
  45. FOSA丨12丨微核架构

    本篇通过回答《Fundamentals of Software Architecture》第十二章的课后思考题,深入探讨微核架构中插件组件间依赖关系的设计原则、插件管理工具与框架的选择策略、第三方插件契约兼容性处理方案,以及微核架构的分区特性、架构量子特征和领域同构性概念分析,帮助理解微核架构的核心设计模式和扩展机制,提升架构师在构建可扩展系统时的架构选择能力和插件化设计水平。

    架构设计
  46. FOSA丨11丨管道架构

    本篇通过回答《Fundamentals of Software Architecture》第十一章的课后思考题,深入探讨管道架构中管道双向性的可能性与限制、过滤器类型的分类与作用机制、数据流向的设计原则,以及管道架构的分区特性、模块化支持方式和典型应用场景分析,帮助理解管道与过滤器架构的核心概念和设计模式,提升架构师在处理数据流应用时的架构选择能力和系统设计水平。

    架构设计
  47. FOSA丨10丨分层架构

    本篇通过回答《Fundamentals of Software Architecture》第十章的课后思考题,深入探讨分层架构中开放层与封闭层的核心差异、隔离层概念的重要价值、架构漏斗反模式的识别与防范,以及分层架构风格的主要驱动特性与局限性分析,帮助理解分层架构的设计原则和适用场景,提升架构师在选择和实施分层架构时的决策能力和风险评估意识。

    架构设计
  48. FOSA丨09丨架构风格基础

    本篇通过回答《Fundamentals of Software Architecture》第九章的课后思考题,深入探讨分布式计算的八大谬论及其对架构设计的影响、分布式架构相比单体架构面临的独特挑战、邮票耦合问题的本质与危害,以及解决邮票耦合的有效策略与最佳实践,帮助理解分布式系统设计的核心原则和常见陷阱,提升架构师在分布式环境下的决策能力和风险识别意识。

    架构设计
  49. FOSA丨08丨组件思维

    本篇通过回答《Fundamentals of Software Architecture》第八章的课后思考题,深入探讨软件组件的核心概念与实现方式、技术导向与领域导向分区策略的差异、实体陷阱问题的本质及解决方案,以及Actor/Actions模式、工作流分析和事件风暴等组件识别技术的适用场景与局限性,帮助理解如何运用领域驱动的思维方式来设计组件边界,提升系统的内聚性、松耦合特性和业务适应能力。

    架构设计
  50. Rust 入门丨02 闭包

    本文通过"承诺"的视角深入解析 Rust 闭包中 Fn、FnMut、FnOnce 三个 trait 的包含关系,帮助读者理解闭包设计的本质。

    Rust
  51. FOSA丨07丨架构特性范围

    本篇通过回答《Fundamentals of Software Architecture》第七章的课后思考题,深入探讨架构量子的概念与定义、架构特性的作用范围以及量子边界的识别方法,分析系统组件间的同步依赖关系对架构分解的影响,帮助理解如何基于功能内聚性和部署依赖性来合理划分架构边界,优化系统的可部署性、可测试性和可维护性。

    架构设计
  52. 课程笔记丨《手把手带你写一个 Web 框架》

    极客时间《手把手带你写一个 Web 框架》课程笔记。

    课程笔记
  53. FOSA丨06丨评估和管理架构特性

    本篇通过回答《Fundamentals of Software Architecture》第六章的课后思考题,深入探讨如何衡量和管理架构特性,分析圈复杂度等结构性指标的重要性、架构适应度函数的定义与应用,以及运维性、结构性、流程性指标的评估方法,帮助理解如何建立有效的架构治理机制来持续监控和优化系统架构。

    架构设计
  54. FOSA丨05丨识别架构特征

    本篇通过回答《Fundamentals of Software Architecture》第五章的课后思考题,深入探讨如何识别架构特征,分析限制架构特性数量的重要性、架构特性的来源、业务驱动与架构特性的关系,以及可伸缩性与弹性等关键特性的区别,帮助理解如何从业务需求中提取和选择合适的架构特性。

    架构设计
  55. FOSA丨04丨架构特性定义

    本篇通过回答《Fundamentals of Software Architecture》第四章的课后思考题,深入探讨架构特性(Architecture Characteristics)的定义与分类,分析架构特性的三个判定标准、隐性与显性特性的区别,以及操作型、结构型、交叉型特性的具体表现形式,帮助理解如何识别和选择适合系统需求的架构特性。

    架构设计
  56. RAG 全栈技术

    RAG 全栈技术

    AI
  57. FOSA丨03丨模块化

    本篇通过回答《Fundamentals of Software Architecture》第三章的课后思考题,深入探讨模块化设计的核心概念——连接性(connascence),分析静态与动态连接性的区别、不同连接性形式的强弱程度,以及如何在代码库中合理选择连接性类型,帮助理解高内聚低耦合的实现原理和最佳实践。

    架构设计
  58. FOSA丨02丨架构思维

    本篇通过回答《Fundamentals of Software Architecture》第二章的课后思考题,深入探讨传统架构方法的局限性、知识三角的三个层次、架构师技术广度与深度的平衡,以及架构师保持技术敏锐度的实践方法,帮助理解现代架构师应具备的思维模式。

    架构设计
  59. Go 底层原理丨深度剖析 Gin 框架核心机制:从 HTTP 请求生命周期到高性能设计哲学

    基于 Gin v1.10.1 源码,深入解析 HTTP 请求在 Gin 中的完整生命周期,包括高性能 Radix Tree 路由实现、sync.Pool 对象池优化、中间件洋葱模型、以及优雅关闭等核心机制

    收录于专栏「Go 底层原理」Go
  60. FOSA丨01丨软件架构概述

    本篇通过回答《Fundamentals of Software Architecture》第一章的课后思考题,深入探讨软件架构的四个定义维度、架构决策与设计原则的区别、软件架构师的核心职责,以及软件架构的第一定律,帮助建立对软件架构的全面认识。

    架构设计
  61. Q&A丨在 AI 时代,如何应对技术焦虑?

    本文探讨了在 AI 时代如何应对技术焦虑的问题。通过分析底层技术学习的必要性,提出了"原则重于工具"的核心观点,并构建了包含 T 型知识结构、时间盒管理、即时学习等策略的系统性解决方案,帮助工程师在技术海洋中找到方向,从焦虑走向成长。

    ai问答
  62. Q&A丨在 AI 时代,还有必要学习底层技术吗?

    本文讨论了在 AI 时代继续扎根学习底层技术的重要性,并给出 5 个说服自己的理由。

    ai问答
  63. 读书笔记丨《Rust Atomics and Locks》置顶

    本篇是 Rust 并发编程系列文章的最后一篇,笔者将尝试对书中涉及到的关键知识点进行统一梳理,主要是为了便于查阅,所以不会再过多深入细节,感兴趣的读者可以跳转到对应篇章进行详细查阅。

    收录于专栏「读书笔记」笔记
  64. Rust 实战丨手写一个 RwLock

    通过三个渐进式版本深入理解 RwLock 的实现原理,从基础功能到性能优化再到公平性保证,掌握原子操作、内存顺序、条件变量等并发编程核心技术,并学会解决写饥饿等实际问题。

    收录于专栏「Rust 实战集合」Rust
  65. Rust 实战丨手写一个 Condvar

    在多线程编程中,你是否遇到过这样的困扰:消费者线程不断轮询检查数据是否准备好,白白浪费 CPU 资源?或者在生产者-消费者模式中,如何让消费者优雅地等待数据到来?本文将带你手写一个高效的 Condvar(条件变量),解决线程间的等待与唤醒问题。我们将从最基础的实现开始,逐步优化到减少不必要的系统调用,并深入分析内存顺序的选择,让你彻底理解条件变量背后的设计哲学。

    收录于专栏「Rust 实战集合」Rust
  66. Rust 实战丨手写一个 Mutex

    本文带你从零开始实现一个 Rust 中的 Mutex 锁,结合 Rust 原子操作和内存顺序的核心知识,逐步揭示 Mutex 背后的等待与唤醒机制。通过阅读本文,你不仅可以掌握如何使用 Rust 的原子 API 实现一个高效的互斥锁,还能深入理解原子操作背后的内存模型,为掌握更复杂的并发编程技巧打下坚实基础。

    收录于专栏「Rust 实战集合」Rust
  67. Rust 原理丨操作系统并发原语

    操作系统的并发原语是实现各种锁、条件变量和同步工具的核心基础。无论是 Linux 中被广泛使用的 futex、macOS 中的 pthread 和 osunfairlock,还是 Windows 系统上的重量级内核对象、轻量级原语及地址等待机制,本质上都是围绕着三个基本动作展开:wait、wakeone 和 wakeall。本文将通过对三大主流操作系统底层并发原语的梳理与对比,帮助你建立统一的认知框架,更深入地理解并发编程背后的系统级支持,避免在实践和学习中被五花八门的概念搞晕。

    Rust
  68. Rust 原理丨从汇编角度看原子操作

    本篇文章沿着 “CPU → 汇编指令 → Rust 原子语义” 的链路,带你拆解 Atomic 背后到底发生了什么。我们先用 x86-64 与 ARM64 的真实编译结果对比 Ordering 的生成代码,再结合缓存一致性协议与编译器重排规则,解释为什么同一行 Rust 代码在不同平台会呈现截然不同的机器级行为。读完后,你不必死记硬背五种内存顺序,也能判断何时选 Relaxed、何时必须上 SeqCst,并掌握一套“看 asm → 辨语义 → 做权衡”的分析方法,为写锁、并发容器或性能调优提供根底。

    Rust
  69. Rust 实战丨手写一个 Arc

    本文手把手带你拆解并重构 Arc:从单线程引用计数,到跨线程 Weak 防环,再到剥离强/弱引用与内存序优化,层层深入 Rust 并发与内存模型核心。

    收录于专栏「Rust 实战集合」Rust
  70. Rust 实战丨手写一个 oneshot channel

    本文从零开始,通过多版本迭代,实现一个安全的 Rust oneshot channel。我们将深入 AtomicBool、UnsafeCell、MaybeUninit 的使用,通过 Drop 管理内存,并最终以 Sender/Receiver 模式和所有权机制封装 unsafe,构建健壮的并发原语。

    收录于专栏「Rust 实战集合」Rust
  71. Rust 实战丨手写一个 SpinLock

    本文以三段迭代示例演示如何在 Rust 中手写自旋锁:从最小化原子标志实现,到绑定受保护数据,再到借助 RAII 实现自动解锁。过程中深入讲解 Atomic 内存顺序、UnsafeCell 内部可变性、Send/Sync 并发标记,以及 Drop/Deref 零成本抽象,帮助读者理解自旋锁适用场景与潜在陷阱,并掌握将并发安全问题前移到编译期的工程思维。

    收录于专栏「Rust 实战集合」Rust
  72. RAG 技术概览

    本文是在笔者学习了极客时间《RAG 快速开发实战》课程后,对 RAG 相关技术进行一个梳理归纳,帮助开发者在 RAG 开发中进行快速定位、系统学习。

    AI
  73. 读书笔记丨《Unit Testing Principles, Practices, and Patterns》

    本文总结了读者在阅读《Unit Testing》书籍中的收获和思考。

    收录于专栏「读书笔记」笔记
  74. 书籍摘抄丨《Unit Testing Principles, Practices, and Patterns》

    本文对《Unit Testing》的关键观点进行了梳理总结。

    收录于专栏「读书笔记」笔记
  75. 一步步推导出 MySQL 数据的底层存储结构

    本文从最简单的数据格式开始,通过不断解决一个个关键问题,最终推导出 MySQL 数据的底层存储结构,即 B+ 树。

    数据库
  76. 在 Hexo 博客中优雅地集成 Markmap 思维导图

    本文详细介绍了如何在 Hexo 博客中优雅地集成 Markmap 思维导图,让你能够直接在 Markdown 文件中创建交互式思维导图。同时这也是一个 Hexo 插件的标准实现案例。

    小技术
  77. 为什么 OpenTelemetry 的 SDK 中不支持尾采样 Hook?

    本文介绍了 OpenTelemetry 的采样机制,特别是为什么它在 SDK 层面不支持尾采样。

    服务监控
  78. 读书笔记丨《悟道领域驱动设计》

    阅读《悟道领域驱动设计》后的一些笔记和思考。

    收录于专栏「读书笔记」笔记
  79. Go 1.24 新特性解读:使用 testing/synctest 优雅地测试并发代码

    本文介绍了 Go 1.24 版本引入的实验性包 testing/synctest,并详细讲解了如何使用它优雅地测试并发代码。

    Go
  80. 直播系统推拉流原理

    本文介绍了直播系统推拉流的基本原理,包括推流和拉流的过程、协议选择、关键指标等。

    解决方案
  81. 网络数据包的完整旅程:从发送到接收的全过程

    通过一个 HTTP 请求与响应,深入探索背后的网络通信机制,从 DNS 解析、TCP 连接到数据封装与传输,全面解析数据包如何穿越局域网与公网到达目标服务器。

    计算机基础
  82. 解决方案丨游戏后端中的 Push-ACK 机制设计与内存优化

    本文介绍了游戏后端中的 Push-ACK 机制的设计与实现,特别关注如何避免内存暴涨问题,分享了在多个大型游戏项目中积累的经验与教训。

    解决方案
  83. 服务监控丨Prometheus 四大数据类型详解

    本文介绍了 Prometheus 的四大数据类型及其 PromQL 查询语言,帮助开发团队构建强大的可观测性系统。

    服务监控
  84. 在 Go 项目中实现 JWT 用户认证与续期机制

    本文将结合实际代码,详细讲解如何在 Go 项目中实现 JWT 认证机制,并探讨两种常见的 Token 续期策略:自动续期和 Refresh Token。

    Go
  85. 深入 Go 语言核心:map 和 slice 的传参有什么不同

    本文通过一个令人困惑的例子开始,探讨 Go 语言中 map 和 slice 动态扩容机制与传参时需要注意的问题。

    Go
  86. 读书笔记丨解密 QUIC/HTTP3:未来互联网的基石

    整理阅读《解密 QUIC/HTTP3:未来互联网的基石》笔记。

    计算机基础

202421 篇

  1. 匠心码道丨01 编写优质代码的十大黄金法则

    详解编写整洁代码的十大原则,帮你写出更好的代码。

    匠心码道
  2. KCP 源码分析与原理总结

    本文详细介绍了游戏开发中常用的网络协议 KCP 的底层原理和源码实现。通过大量图示和原理总结,帮助读者深入理解 KCP 协议的工作机制,包括其快速重传、选择性确认、流量控制等核心特性。

    计算机基础
  3. Rust 入门丨01 类型系统概述

    本文从编程语言的角度介绍了类型系统的基本概念,并详细阐述了 Rust 类型系统的特点,包括静态类型、强类型、所有权系统等核心特性。

    Rust
  4. Rust 训练营总结丨第三次入门 Rust

    本文记录了我在 Rust 训练营的学习历程,也映射了我 2024 年全年的成长轨迹。

    Rust
  5. Rust 原理丨聊一聊 Rust 的 Atomic 和内存顺序

    本文深入探讨了 Rust 中的原子操作和内存顺序模型。从硬件层面的原子操作实现原理出发,详细介绍了 Rust 提供的各种原子类型及其操作,并重点阐述了内存顺序(Memory Ordering)的概念、分类及其在并发编程中的应用。通过大量示例代码和图解,帮助读者全面理解 Rust 的内存模型和并发安全机制。

    Rust
  6. Rust 实战丨SSE(Server-Sent Events)

    本文详细介绍了 SSE 的工作原理,并通过示例代码展示了如何使用 Go 和 Rust 实现一个简单的 SSE 服务端,展示了在实际项目中应用 SSE 的方法。

    收录于专栏「Rust 实战集合」Rust
  7. Rust 实战丨通过实现 json! 掌握声明宏

    本文分步展示了实现 json! 宏的过程,包括定义 Json 枚举和不同类型的匹配规则。通过这个过程,读者可以掌握声明宏的基本概念和实现方法。

    收录于专栏「Rust 实战集合」Rust
  8. xgo 原理探索

    xgo 是一个通过代码重写来实现 mock、trace 和 coverage 功能的单元测试框架。本文将探讨 xgo 最核心的底层原理 -toolexec,并通过 6 个简单的小阶段,一步步实现一个丐版 xgo,进一步展示 xgo 的设计理念。

    Go
  9. Kafka 负载均衡挑战及解决思路

    本文转载自 Agoda Enginnering, 介绍了 Kafka 负载均衡的实际应用过程中的负载均衡挑战及解决思路。

    Kafka
  10. 学习记录:用 Go 自制解释器 Monkey

    本文主要是记录笔者在学习《用 Go 自制解释器 Monkey》过程中涉及的重要设计理念和思考。

    Go
  11. 时间处理基础:Rust 的 chrono 库教程

    本文全面的指南深入介绍了如何在 Rust 中使用 chrono 库来精确处理和转换时间与日期。从基本概念到高级功能,本文提供了实用的代码示例和详尽的解释,帮助你在任何 Rust 项目中高效管理时间。

    Rust
  12. Rust 实战丨并发构建倒排索引

    本文详细阐述了使用 Rust channel 并发构建倒排索引的详细过程。

    收录于专栏「Rust 实战集合」Rust
  13. Rust 实战丨倒排索引

    本文将使用 Rust 实现一个简单的倒排索引。

    收录于专栏「Rust 实战集合」Rust
  14. 深入浅出 Go 语言的 defer 机制

    本文将深入浅出地介绍 defer 的工作原理,探究其背后的机制,并通过丰富的案例来展示它的实际应用。

    收录于专栏「Go 底层原理」Go
  15. 深入 Go 语言核心:结构体的全方位解析

    本文将带您全面深入地探索 Go 语言中结构体的各个方面,从基本定义、初始化和使用,到高级特性如结构体的组合、方法定义、内存对齐等。

    收录于专栏「Go 底层原理」Go
  16. Rust 实战丨HTTPie

    我们深入探讨了如何使用 Rust 语言来实现一个类似于 HTTPie 的命令行工具。

    收录于专栏「Rust 实战集合」Rust
  17. Rust anyhow 简明教程

    探索 Rust 的 anyhow 库,它提供了一个简单而强大的方式来处理错误。本教程将引导你了解 anyhow 的核心特性,包括易用性、错误链、调试便利性,以及如何在不同场景下利用 anyhow 来简化错误处理。无论是快速原型开发还是应用程序顶层错误处理,anyhow 都是 Rust 开发者的得力助手。

    Rust
  18. 深入探索 Rust 的 clap 库:命令行解析的艺术

    本文将深入探索 Rust 中一个非常流行的命令行解析工具 clap,本文会先详细介绍 clap Derive 和 Builder 两种构建命令行工具的方式,并实战 httpie 工具,最后还将 clap 与 Go 语言中在命令行解析同样流行的 cargo 进行比较。

    Rust
  19. Rust reqwest 简明教程

    本文介绍了 Rust 一个非常流程和强大的 HTTP 客户端库 reqwest 的基本使用方法。

    Rust
  20. 深入浅出 Go 语言的 GPM 模型(Go1.21)

    本文基于 Go1.21.0 版本详细介绍了 Go 语言的 GPM 模型。

    收录于专栏「Go 底层原理」Go
  21. Rust 实战丨绘制曼德博集

    本文参考《Rust 程序设计(第二版)》中第二章的示例,与读者分享曼德博集的绘制过程。

    收录于专栏「Rust 实战集合」Rust

20237 篇

  1. 一文彻底掌握浮点数

    本文从一个经典问题 0.1+0.2 != 0.3 出发,详细介绍了 IEEE-754 标准下的浮点数表示方法,细致阐述了 3 种浮点数类型的表示逻辑,包括规格化值、非规格化值和特殊值。还介绍了浮点数舍入的 4 种模式,以及浮点数的基本运算。最后,本文结合 Go 语言给出了浮点数不同的输出方式的例子,以及简单介绍了 Go 语言中的 math/big 库在大数运算和精度更高的运算场景中的应用。本文包含大量实例和推演过程,希望能帮助读者彻底掌握浮点数。

    计算机基础
  2. Go1.21.0 程序启动过程

    本文基于 Go1.21.0 版本详细介绍了 Go 语言程序的启动过程。开头有总结,方便读者快速浏览或回顾,后面是对整个 Go 启动过程的详细讨论,感兴趣的读者可以深入阅读这一部分。

    收录于专栏「Go 底层原理」Go
  3. Go1.21.0 程序编译过程

    本文基于 Go1.21.0 版本详细介绍了 Go 程序的编译过程。

    收录于专栏「Go 底层原理」Go
  4. Kafka 顺序消息实现

    本文详细介绍了如何实现 Kafka 的顺序消息,同时给出了消息队列顺序消息的通用实现思路,并简单介绍了 RabbitMQ、RocketMQ 和 Pulsar 在顺序消息方面的实现思路。

    Kafka
  5. Kafka 集群部署(KRaft)

    Kafka 在 3.3.1 版本发布了第一个可以在生产环境使用的 KRaft 版本,正式拜托了 Zookeeper。本文基于 Kafka 3.6.0 版本,详细介绍了 Kafka KRaft 版本的集群部署过程。

    Kafka
  6. Kafka 集群部署

    本文总结了在 Ubuntu18.04 虚拟机上部署 Kafka 集群的具体过程。

    Kafka
  7. Raft-Extended 论文翻译

    本文对 Raft-Extended 进行了一比一的翻译,其中有些地方加入了额外的注解,这些都是笔者在学习 Raft 算法时遇到的比较困惑的难点,希望这些注解能对其他读者有帮助。

    论文翻译