TAG
# 编程
按具体问题和线索重新找到相关内容。

DeepSeek-V4-Flash:跑得快没奖励,跑得慢有惩罚

《我的世界》游戏模组开发指南:用AI构建你的第一个模组

RCU:读多写少的系统,为什么敢让读者几乎不加锁?

AI 代码审查能不能替代人类 Code Review

ABI:为什么源码能编译,二进制却不能互相调用?

EEVDF:Linux 如何判断哪个任务“最该先用 CPU”?

Property-based Testing:不要只测试几个例子

Symbolic Execution:把输入变成未知数,程序能自己找出崩溃条件吗?

AI 编程为什么需要“证据链”?

pidfd:进程号会被重用,怎样才能稳定指向一个进程?

SSA:为什么编译器喜欢让变量“只赋值一次”

Type Erasure:泛型信息为什么运行时消失了?

mmap:文件什么时候会变成程序地址空间里的一扇窗?

Vibe Coding 时,为什么最容易泄露 API Key 和密码

Metamorphic Testing:没有标准答案时,怎么判断程序错了

Transparent Huge Pages:大页能省 TLB,为什么有时又会卡顿?

Refinement Types:类型不只说“这是整数”,还可以说“它大于 0”

BPF CO-RE:一份 eBPF 程序怎样适配不同 Linux 内核?

CFG:程序不是一条线,而是一张路网

Roaring Bitmap:如何把大量整数集合压缩起来,还能快速求交集?

Semantic Diff:代码改了多少行,不等于逻辑改了多少

使用 AI 为项目接入 Supabase 数据库

SBOM:软件也应该有一份配料表

氛围编程入门

0.1+0.2 为什么不等于 0.3?计算机真的算错了吗?

可复现构建:同一份源代码应该得到同一份软件

False Sharing:不同线程改不同变量,为什么也会互相拖慢?

SMT Solver:让机器回答“有没有满足这些条件的输入”

为什么 AI 编程项目开始需要 AGENTS.md?

SLSA Provenance:软件产物的“出生证明”

Vibe Coding 是什么?从一句话到可运行应用

Consumer-driven Contract:前端真正依赖的是什么

HTTP 103 Early Hints:网页还没返回,服务器为什么先说一声

SQLite复兴:从一个文件到边缘数据库

Animejs - 前端动画库

Kimi K3

AI 编程时代,为什么 Git 和 Pull Request 更重要了

Abstract Interpretation:静态分析为什么不用真正运行程序?

AI 写 SQL 和数据库迁移,为什么必须人工确认

AST:AI 为什么不只是在“读代码文本”?

Epoch Reclamation:并发程序为什么要等“这一代线程”都走完再释放内存?

DPDK Poll Mode Driver:为什么有些网卡程序宁可轮询,也不等中断?

AI 怎么读懂一个大型代码仓库?

AI 编程会让程序员消失吗

Futex:Linux 的锁为什么大多数时候根本不需要进内核?

Skill是什么?

Merkle DAG:为什么一处改动可以快速传遍依赖关系

E-graphs:AI 如何同时保留一百种等价写法,最后挑出最好的?

AI 写出来的测试靠谱吗?测试通过就代表没问题吗

OpenAPI 如何让 AI 同时写前后端不“各说各话”?

userfaultfd:程序能不能自己接管缺页处理?

Hermetic Build:让构建不再偷偷依赖你的电脑

Copy-on-Write:父子进程为什么可以先共享同一份内存?

语音搜索一定先变成文字吗?AI 开始绕过转写这一步

QUIC:为什么 HTTP/3 选择在 UDP 上重新造一套传输协议?

WebAssembly Component Model:不同语言写的模块如何拼在一起?

QPACK:HTTP/3 如何压缩重复的请求头,还不被队头阻塞拖住?

Monomorphization:泛型代码为什么会被编译成很多份?

HyperLogLog:不保存所有访客 ID,怎样估算独立访客数?

氛围编程避坑

LSM-tree:为什么高写入数据库要先记下来,再慢慢整理?

FFI:Python、Rust、C 为什么能互相调用?

LSIF:把“跳转定义”变成可以搬运的代码地图

KSM:虚拟机里重复的内存页,能不能只保留一份?

AI 编程为什么要先 Plan 再 Edit?

TLB Shootdown:页表改了,为什么还要通知其他 CPU?

Temporal:为什么程序员最怕 2 月 29 日和夏令时

Unicode:一个 Emoji 为什么 length 不是 1
Passkey通行密钥:为什么用指纹登录比密码更安全

MicroGPT解读&思考

AI 生成的代码会不会复制开源项目

CAS:文件的身份可以由内容决定

Hazard Pointers:无锁数据结构删除节点后,谁来保证它还没被读到?

云端 AI 编程环境和本机环境有什么区别

WAL:为什么数据库要先写日志,再写真正数据?

Seqlock:读者不加锁,为什么还能读到一份一致的数据?

CPG:把代码变成一张可以查询的关系图

Wasm Component Model:不同语言写的模块怎样用同一套接口协作?

Backpressure:生产者太快时,系统怎样不被数据淹没?

io_uring:Linux 如何用两个环形队列批量处理异步 I/O?

一个 SKILL.md 如何让 AI 学会一套可复用工作流?

Tree-sitter:为什么编辑器不用每次重读整个文件?

NUMA:同一台机器上的内存,为什么有的更近更快?

Vibe Coding 最适合做什么,最不适合做什么

Zero-copy:数据从磁盘到网卡,能不能不经过用户态拷贝?

科研人员用 AI 写软件,为什么“科学正确”比“代码能跑”更难?

Compare-and-Swap:并发程序如何用一次原子比较避免互相覆盖?

对编程语言发展历程的思考:从比特到思想

MVCC:数据库如何让读写同时发生,却尽量互不阻塞?

文件删除以后去了哪里?为什么有时还能恢复?

Superoptimization:普通编译器做不到的极致优化,怎么搜出来?

LSP 是编辑器和编程语言之间的共同语言

Coverage-guided Fuzzing:让测试输入朝“新路径”前进

Dominator Tree:一条程序路径上谁是必经之地?

Source Map:线上代码出错时,为什么还能找到源文件

污点分析:一滴输入如何穿过整个程序

AI 编程为什么第一版很快,第二版却越来越难改

Linearizability:多线程操作如何看起来像在同一瞬间完成?

AI 编程该用聊天框、编辑器,还是终端 Agent

Gradual Typing:动态类型和静态类型怎样和平共处?

HTTPS 握手:浏览器和服务器刚连上时到底在聊什么

幂等键:支付按钮点两次,为什么不能扣两次钱

