C++ 宏的常见用法与现代替代
C 预处理器宏是 C/C++ 中最古老也最具争议的特性之一。它发生在编译之前——纯文本替换,没有类型检查、没有作用域、调试时不可见。尽管现代 C++ 已为绝大多数宏场景提供了更安全的替代方案,宏仍大量存在于系统编程、跨平台代码和第三方库中。理解宏的常见用法,既是阅读遗留代码的必备技能,也是避免在新代码中误用的前提。 常量定义 最古老的用法——用宏定义编译期常量: 1234#define PI...
C++ 视图
C++ 里的“视图”不是某一个单独类型,而是一类共同思想:用一个轻量对象描述一段数据或一段计算,不拥有数据,尽量不复制,按需访问。它们把“我想看哪一段、以什么方式看”从“数据本身如何存储”里拆出来。 常见视图有三类: 类型 标准 作用 是否拥有元素 能否修改元素 std::string_view C++17 只读地观察一段字符 否 否(只读) std::span C++20...
Redis 底层原理与架构
Redis 是基于内存的键值存储,常被当作缓存、消息队列、分布式锁甚至轻量数据库使用。它之所以通用,关键在于其丰富的数据结构与精巧的底层实现。本文聚焦 Redis 的"内部"——数据结构的底层编码、Lua 执行模型、过期与淘汰机制、持久化、集群架构与故障转移;命令用法与适用场景见姊妹篇《Redis 使用手册》。 全局视角 Redis 的 key 是二进制安全的字符串,va...
golang-arch
写 Go 的人大多停在"写代码 → go build → 跑起来"这一层。但真要追问"go build 到底产出了什么?二进制里塞了哪些东西?程序被 OS 拉起来之后,CPU 第一条指令落在哪?goroutine 又是怎么’凭空’跑起来的?"——能讲清楚的人并不多。 这篇文章把 Go 从源码到执行的全链路拆开:编译格式 → 二进制格式 → 运行时格式 ...
MCP 协议详解:从架构到原语的设计拆解
Model Context Protocol(MCP)是 Anthropic 在 2024 年底推出的开放协议,目标是给 LLM 应用和外部数据源、工具之间定一个标准化的接驳方式。它借用了 Language Server Protocol(LSP)的思路——LSP 让任意编辑器对接任意语言服务,MCP 则让任意 AI 应用对接任意工具与上下文。 这篇文章不写"怎么装一个 MCP S...
Redis 使用手册
Redis 是基于内存的键值存储,常被当作缓存、消息队列、分布式锁甚至轻量数据库使用。它之所以通用,关键在于其丰富的数据结构——选对结构,命令和场景往往自然成立。本文是 Redis 使用侧手册,系统梳理各数据结构的核心命令与适用场景;底层编码、Lua 执行模型、过期淘汰、持久化与集群架构等原理见姊妹篇《Redis 底层原理与架构》。 全局视角 Redis 的 key 是二进制安全的字符串,v...
TypeScript 与 React 实战
课程概览 · 上一篇:TypeScript 与 Bun 实战 · 第 12 章 前面的章节我们系统掌握了 TypeScript 的类型系统,并在 Bun 服务端场景里落地。本篇把 TypeScript 带入 React 前端工程:从项目初始化、组件与 Props 的类型设计,到 Hooks、Context、事件处理、泛型组件、状态管理库的类型对接,最后落地一个类型完备的可运行示例。目标只...
TypeScript 与 Bun 实战
课程概览 · 上一篇:模块、装饰器与工程化 · 第 11 章 · 下一篇:TypeScript 与 React 实战 前面的章节我们系统学习了 TypeScript 的类型系统与工程化能力,但一直停留在"编译成 JS 后在浏览器或沙箱里跑"的层面。本篇把 TypeScript 带入 Bun 服务端场景:从项目初始化、tsconfig 针对 Bun 的关键配置,到内置模...
TypeScript 模块、装饰器与工程化
课程概览 · 上一篇:高级类型 · 第 10 章 · 下一篇:TypeScript 与 Bun 实战 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 本篇聚焦于工程化层面的核心能力:从命名空间与模块系统的组织方式,到声明文件如何桥接 JavaScript 生态,再到装饰器的元编程能力与路径映射、项目引用、Monorepo 等大型项...
TypeScript 高级类型
课程概览 · 上一篇:泛型与类型组合 · 第 9 章 · 下一篇:模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 的类型系统不仅能描述数据的形状,还能像写逻辑一样对类型本身进行运算。工具类型、条件类型、映射类型、infer、索引类型、递归类型,以及协变与逆变,构成了 TS 类型编程最核心...
TypeScript 泛型与类型组合
课程概览 · 上一篇:接口与类 · 第 8 章 · 下一篇:高级类型 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 的类型系统不止能描述单一类型,还能通过泛型让代码与具体类型解耦,再借助 type 别名、联合类型、交叉类型、字面量类型等把多个类型组合出精确的约束。本篇从泛型出发,依次串联类型别名、联合与交叉...
TypeScript 接口与类
课程概览 · 上一篇:异步编程与错误处理 · 第 7 章 · 下一篇:泛型与类型组合 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 的接口与类是面向对象编程的核心构件:接口负责描述对象的形状与契约,类负责封装数据与行为并支持继承与多态。本篇将接口、类、访问修饰符、抽象类、继承与混入串联起来,形成一条从&qu...
TypeScript 异步编程与错误处理
课程概览 · 上一篇:集合类型 · 第 6 章 · 下一篇:接口与类 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 JavaScript 中大量操作都是异步的,例如网络请求、文件读取、定时器等。Promise 为这些异步操作提供了统一的编程接口,而 TypeScript 又通过泛型为 Promise 加上了精确的类型约束。本篇将...
TypeScript 集合类型
课程概览 · 上一篇:流程控制与运算符 · 第 5 章 · 下一篇:异步编程与错误处理 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 在 JavaScript 的基础上为各类集合类型加上了静态类型约束,使得数组、元组、枚举、Map、Set 以及对象在编写阶段就能获得类型检查与智能提示。本篇将这几种常用的集合...
TypeScript 流程控制与运算符
课程概览 · 上一篇:函数 · 第 4 章 · 下一篇:集合类型 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 在 JavaScript 之上补充了类型系统,而运算符、条件语句、循环以及迭代器/生成器构成了程序流程控制的核心。本篇将这几部分串联起来,覆盖从算术运算到生成器惰性求值的完整链路,帮助你在类型约束...
TypeScript 函数
课程概览 · 上一篇:基础类型与变量声明 · 第 3 章 · 下一篇:流程控制与运算符 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 在 JavaScript 函数的基础上引入了完整的类型系统,让我们可以为参数、返回值、this 等显式标注类型,并通过函数重载为同一个函数定义多套调用签名。本文从函数的定义与...
TypeScript 基础类型与变量声明
课程概览 · 上一篇:入门与配置 · 第 2 章 · 下一篇:函数 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 的核心价值在于静态类型系统,它让 JavaScript 在编译阶段就能捕获大量潜在错误。本章将系统梳理 TypeScript 的基础类型体系、变量声明方式,以及 null/undefined、S...
TypeScript 入门与配置
课程概览 · 第 1 章 · 下一篇:基础类型与变量声明 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 是 JavaScript 的超集,由微软开发并在编译期提供静态类型检查,让大型项目与团队协作更加安全可控。本篇将带你从零认识 TypeScript,理解它和 JavaScript 的差异,搭建本地开发环境...
TypeScript 教程总览
这套 TypeScript 教程共 12 章:先建立 JavaScript 与 TypeScript 的关系,掌握基础类型、函数和数据结构;再学习接口、泛型与高级类型,最后把类型系统用到工程、Bun 服务端和 React 前端项目中。可以按顺序阅读,也可以从下方目录直达需要的主题。 系列目录 入门与配置 - TypeScript 与 JavaScript 的关系、环境搭建、基础语法、ts...
Java Class
类(class)是 Java 面向对象编程的基本构建单元,它既是数据抽象的载体,也是行为封装的边界。理解 class 的核心内容,本质上是理解 Java 如何用类型系统组织数据与行为。本文从现代 Java(25 LTS)视角出发,梳理 class 设计的核心要素。 类的本质:状态与行为的封装 一个 class 由两部分构成:字段(状态)和方法(行为)。封装的目的是把可变状态收敛到最小范围,对...




















