适合录制视频的博客文章清单

适合录制视频的博客文章清单

筛选标准:不过时、讲基础、讲算法、讲架构、当前技术价值高 按优先级从高到低排列


一、🔥 高优先级 —— 与 2026 年 Tokio 系列直接联动

这些文章可以和今年正在写的 Tokio 源码分析(sleep、I/O Driver、mio、ScheduledIo)形成系列,剪辑成连贯的视频。

文章 年份 原文标题 推荐视频选题
2023-05-30-tracing.md 2023 The RESTEasy Tracing Feature Has Been Integrated Into WildFly 「给 epoll_wait 装上行车记录仪:用 tracing 看 tokio 内部」。tracing 的 span/trace 可视化效果极好,可以把 tokio 的 park_internal → epoll_wait → process_at_time 链路用日志可视化跑一遍,屏幕左边代码右边 trace,视觉冲击力强
2018-01-05-async.md 2018 并发与异步 「Rust async/await 从 2018 到 2026」。对比八年前的 Rust async 设计和 today’s tokio 实现,有历史纵深感。B 站用户吃这种 “演变” 类内容
2018-01-25-future.md 2018 Java:「Future」与「FutureTask」 同上,可合并一期
2022-03-02-my-axum-playground.md 2022 My Axum Playground 「从 HTTP 请求到 epoll_wait:axum + tokio 的全链路追踪」。带一个 demo 从 axum 路由到 http handler,一直拆到 epoll_wait,实操性很强
2023-02-18-axum.md 2023 Upgrade the axum-playground project to use axum 0.6 同上,可合并

二、🔴 高优先级 —— 语言基础 & 并发模型(永远不过时)

文章 年份 原文标题 推荐视频选题
根目录 go-vs-rust-concurrency-comparison.md Go vs Rust 并发模型对比分析 「Goroutine vs async Task:两种并发的设计哲学」。对比 Go 的 M:N 调度器 vs tokio 的 work-stealing + epoll,受众面广,不依赖特定语言也能理解
根目录 source-code-comparison-goroutine-future-virtualthread.md Goroutine / Future / Virtual Thread 源码对比 「三个世界,三种并发:Goroutine、async/await、Virtual Thread 的源码对比」。Go → Rust → Java 21 三种方案,从源码级别拆解。适合 B 站的 “硬核技术对比” 品类
2020-04-22-rust.md 2020 基于 Rust 的 TCP 通信场景 「Rust 的所有权和生命周期:用图解讲清楚借用检查器」。基础内容,但任何时候都有新人需要学
2021-05-06-rust-deref.md 2021 Rust Deref Example 「Rust 的 Deref / DerefMut:自动解引用的秘密」。小而精的语言特性,适合做 10 分钟短篇
2017-12-21-concurrency.md 2017 关于并发编程的一些思考(一) 「并发编程的基础模型:从线程到协程」。不绑定具体语言,纯概念讲解,适合做系列的第一期
2017-12-22-concurrency.md 2017 关于并发编程的一些思考(二) 「并发编程:从事务到 Sequentially Consistent」续集,可做第二期

三、🟡 中优先级 —— Linux / 操作系统 / 网络

这些内容讲的是操作系统底层原理,不依赖具体版本,永远不会过时。

文章 年份 原文标题 推荐视频选题
2017-12-13-linux-driver.md(系列 4 篇) 2017 Linux 驱动开发入门(一)~(四) 「从零写一个 Linux 内核模块」。八年过去,Linux 模块的框架基本没变。做 “写一个 hello world 内核模块” 的实操视频,配合现在的 blog 里 hrtimer 和 epoll 的分析,形成 “用户态 → 内核态” 的全景
2018-03-08-tcp.md 2018 TCP Server 与 Client,应该由谁负责关闭连接? 「TCP 三次握手:从代码到网络包」。配合 Wireshark 抓包,展示 TCP 连接建立和 epoll 的关系。对应 blog 中的 “网卡中断 → 协议栈 → socket buffer → 就绪通知” 这一段
2021-08-25-Using Wireshark And jSSLKeyLog... 2021 Using Wireshark And jSSLKeyLog To Capture Java SSL 「用 Wireshark 看 SSL/TLS 握手」。实操视频,画面丰富(网络包列表、协议树、hex dump),B 站用户喜欢这类 “真实抓包” 内容
2023-06-20-wireshark.md 2023 Using Wireshark To Analyze GRPC/ProtoBuf Messages 同上,可合并
2019-12-05-http.md 2019 HTTP 的 chunked 传输 「HTTP 协议:从 1.0 到 3.0」。基础中的基础,任何时候都需要
2019-12-12-http.md 2019 HTTP 的客户端 chunked transfer 同上
2019-12-13-http.md 2019 HTTP 的 chunked transfer 协议分析 同上,三篇成系列
2020-02-07-graalvm.md 2020 使用 sdkman 安装 GraalVM 「GraalVM Native Image:AOT 编译原理」。当前 Spring Boot 3 + GraalVM 正热门,新旧皆可
2023-06-19-grpc.md 2023 Using gRPC generated Java classes with IntelliJ 「gRPC 的底层协议:HTTP/2 + Protobuf」。讲协议本身,不过时
2023-07-09-grpc-struct.md 2023 The structure of the generated Java gRPC classes 同上,可合并

四、🟢 中低优先级 —— JVM / 字节码 / 编译器

这些内容语言平台相关,但讲的是编译器原理和 JVM 底层,不会随版本交替过时。

文章 年份 原文标题 推荐视频选题
2017-06-11-invokedynamic-is-a-linking-scheme.md 2017 Lambda is a linking scheme 「invokedynamic:Java 最优雅的链接机制」。lambda 和 invokedynamic 的关系到现在没变,适合做一期 “JVM 字节码是怎么调用 lambda 的” 的拆解视频
2017-06-11-reading-notes-of-invokedynamic-101.md 2017 Reading notes of ‘Invokedynamic 101’ 同上,可合并
2019-05-02-asm.md(系列 3 篇) 2019 配置基于容器的汇编环境 「字节码注入实战:用 ASM 改写 class」。实操 + 原理,代码跑起来的画面感好
2019-04-02-jit.md 2019 Just-in-time Compiler 的实现原理 「JIT 编译器是怎么把热点代码变快的」。JIT 的基本原理十年没变,现在还可以讲
2018-09-09-volatile.md 2018 通过 Java 的 volatile 来看 CPU Multi-core 的 Cache Line 「volatile 和 Java 内存模型」。基础,不过时
2018-01-24-executors.md 2018 Java:「Executors」与「Thread Group」 「Java 线程池原理:Executor 框架拆解」。面试高频考点,做一期有流量
2020-04-02-nio.md 2020 Java NIO 代码阅读笔记「MappedBuffer」 「Java NIO:从 Buffer/Channel 到 Selector」。和 blog 里的 epoll 分析形成跨语言对比

五、🟢 低优先级 —— 算法 & 纯概念

这些不依赖任何技术栈,永远不过时。适合做 “休息区” 内容或系列之间的过渡。

文章 年份 原文标题 推荐视频选题
2017-03-04-Dijkstra-algorithm.md 2017 A Java Implementation of Dijkstra’s Algorithm 「Dijkstra 最短路径:从公式到代码」。白板讲解 + 代码动画,算法类视频在 B 站的播放量天花板很高
2017-03-20-fibonacci.md 2017 A Non-recursive Approach To The Fibonacci 「斐波那契:递归 vs 非递归」。讲递归的代价和迭代的优化,纯思维类内容
2017-12-06-git.md 2017 Git 项目当中的 Windows/Linux 文件编码处理 「Git 内部原理:.git 目录里有什么」。git 的基础概念不会变
2017-12-06-regexp.md 2017 正则表达式的边界 「正则表达式的两种引擎:NFA vs DFA」。自动机理论,纯算法,不依赖任何语言
2017-12-08-autotools.md 2017 使用 Autotools 编译项目(上) 「从 Makefile 到 autotools:C 项目的构建系统演化」。比较小众,但做一期 “为什么现代 Rust 不需要 autotools” 的角度很独特

六、📋 分类总览:三类视频定位

定位 目标观众 推荐选题 制作成本
“源码拆解” 类 有经验的 Rust/后端开发者 Tokio 系列联动、tracing、Wireshark + epoll 中高(需要准备代码和画图)
“对比分析” 类 全栈 / 多语言开发者 Goroutine vs Task vs VirtualThread、HTTP 版本对比 中(PPT 为主,少量代码)
“基础原理” 类 学生 / 初级开发者 Dijkstra、Git 内部原理、TCP 握手、堆内存 低(白板/PPT 即可)

建议的发布节奏


七、🧩 扩展选题 —— 博客里没有专题文章,但你现在的积累可以录

这部分选题不来自单篇博客文章,而是来自你多年积累的技术深度和当前的 tokio 源码研究方向。每一个都和你已有的内容积累直接衔接。

# 选题 思路 和博客的衔接点 制作难度
1 「一条 volatile 在三门语言里:从 Java 到 Rust 到 C」 从 CPU 的 MESI 协议讲起,对比 Java volatile、Rust Ordering::AcqRel、C11 atomic_thread_fence。三个语言的三种写法背后是同一套硬件模型 复用到 tokio StateCell 的 AcqRel 分析、blog 里 2018-09-09-volatile.md 的 cache line 分析。素材现成的 中(PPT + 少量代码演示)
2 「从 .awaitepoll_wait:一条用户态到内核态的完整链路」 把 tokio sleep + I/O driver 两篇博客串联起来,从 Sleep::poll() 开始,经过 Driver 堆叠、mio::Pollepoll_wait、最后到 LAPIC 时钟中断。适合做一期 “源码拆解” 的超长合辑 两篇 tokio 博客的完整内容。图都是现成的 高(需要剪辑和动画)
3 「抽象零开销:Rust 的零成本抽象到底零在哪」 Iterator、Option/Resultasync fn、trait monomorphization——Rust 承诺零成本抽象,到底在哪些环节真正零开销、在哪些环节有取舍 blog 里 2021-05-06-rust-deref.md(Deref 自动解引用)、tokio 系列的侵入式链表分析(TimerShared.pointers 无分配设计) 中(代码为主)
4 「用 Wireshark 验证 tokio 的行为」 实操:启动一个 tokio TcpListener,用 Wireshark 抓 TCP 三次握手、数据包的到达时间,对比用 epoll_wait timeout 设置的 5 秒是否准确 直接复用 tokio I/O blog 的 echo server 和 epoll 分析。Wireshark 抓包操作在 blog 2021-08-252023-06-20 都有基础 低(已有 demo 代码)
5 「从锁到 CAS:并发控制的三代演化」 Mutex(OS 挂起)→ 自旋锁(busy-loop)→ CAS/Atomic(无锁)。用 tokio StateCell(CAS)+ Linux hrtimer(Mutex 加 waitqueue)+ Rust spin_loop_hint 做三个真实案例 tokio StateCell 的 compare_exchange 强 CAS、Linux hrtimer 的 spinlock + waitqueue。素材都是刚写过的 中(PPT + 代码)
6 「巨量 timer 的两种管理哲学:Linux 内核 vs Tokio」 对比 Linux hrtimer 的红黑树 (O(log n)) 和 tokio 时间轮的 6 层 bucket (O(1))。讨论两种设计的不同取舍——内核需要纳秒精度、Tokio 需要海量并发 两篇博客的重合地带:tokio sleep blog 讲时间轮,hrtimer blog 讲内核红黑树。素材全部写好了 低(PPT 为主)
7 「侵入式链表为什么快:从 Tokio Timer 到 Linux kernel 的同一选择」 侵入式链表(intrusive linked list)的节点自身包含 prev/next 指针,节点即元素,没有额外分配。Tokio 的 TimerShared 和 Linux 内核的 list_head 都用它 blog 里 TimerShared.pointers 就是侵入式链表,Slot EntryList 也是。内核 hrtimer 的 timerqueue_node 也是 list_head 中(代码对比 + 白板)
8 「调试 tracing:给分布式系统装行车记录仪」 从 Rust tracing crate 的 span/trace 可视化出发,讲如何在 tokio 应用里用 tracing-subscriber 看到每个 .await 的执行时间 blog 2023-05-30-tracing.md,结合 tokio 的 tracing instrument 低(demo 为主)
9 「多线程的三层博弈:从 CPU 到 OS 到 Runtime」 用同一个”两线程写同一个变量”的例子,在裸 C(无保护)→ pthread(互斥锁)→ Rust tokio(async lock)三个层次上跑,展示每层差异 blog 里 2017-12-212017-12-22 的并发系列。加上 go-vs-rust-concurrency-comparison.md 中(多语言 demo)
10 「Rust unsafe 的常见模式:从 Tokio 源码看 unsafe 的正确使用」 统计 tokio 运行时里最常见的 unsafe 模式:NonNull(指针包装)、侵入式链表、UnsafeCell(内部可变性)、Pinget_unchecked_mut。不讲”unsafe 多可怕”,讲”unsafe 在干什么” tokio sleep blog 中 TimerHandleNonNull<TimerShared>)、StateCellUnsafeCell)、take_entries(侵入式链表) 高(需要收集统计)

选题矩阵

                    技术深度
                    ↑
          4/6/7     │  2/3/5
           PPT为主   │   源码拆解
                    │
          ──────────┼────────→  视频制作难度
                    │
          1/9/10    │    8
          跨语言    │    demo
           对比     │    实操
                    │
象限 选题 适合场景
高深度 + 低制作 6、7 独白类,白板 + PPT,不讲 demo,纯概念输出
高深度 + 高制作 2、3、5 你最擅长的源码拆解类型,需要画流程图/动画
低深度 + 低制作 1、8、9 休息区内容,恢复更新节奏时用
低深度 + 高制作 4 实操视频,抓包 + 双屏,但准备麻烦

生成日期:2026-05-28 博客根目录:/Users/weli/works/liweinan.github.io 总梳理文章数:462 篇(2017-2025)

My Github Page: https://github.com/liweinan

B站视频: https://space.bilibili.com/21947620

Powered by Jekyll and Theme by solid

If you have any question want to ask or find bugs regarding with my blog posts, please report it here:
https://github.com/liweinan/liweinan.github.io/issues