共计 694 个字符,预计需要花费 2 分钟才能阅读完成。
无意中看到大佬的一系列文章,讲的很有意思,转载一下。
为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。
按分类组织
网络
- 001 为什么 TCP 建立连接需要三次握手
- 005 为什么 DNS 使用 UDP 协议
- 012 为什么 TCP 协议有性能问题
- 013 为什么 UDP 头只有 8 个字节
- 017 为什么 TCP/IP 协议会拆分数据
- 018 为什么流媒体直播的延迟很高
- 019 为什么 HTTPS 需要 7 次握手以及 9 倍时延
- 020 为什么 TCP 协议有粘包问题
- 021 为什么 TCP 协议有 TIME_WAIT 状态
- 026 为什么 MAC 地址不需要全球唯一
- 027 为什么 IPv6 难以取代 IPv4
- 028 为什么集群需要 Overlay 网络
数据库
- 003 为什么 Redis 选择单线程模型
- 009 为什么 MySQL 使用 B+ 树
- 010 为什么 Redis 快照使用子进程
- 011 为什么 MongoDB 使用 B 树
- 015 为什么数据库会丢失数据
- 016 为什么比特币可以防篡改
- 024 为什么 MySQL 的自增主键不单调也不连续
- 031 为什么数据库不应该使用外键
操作系统
- 023 为什么 Linux 需要虚拟内存
- 029 为什么系统调用会消耗较多资源
- 030 为什么 Linux 默认页大小是 4KB
- 032 为什么 CPU 访问硬盘很慢
- 033 为什么 NUMA 会影响程序的延迟
- 034 为什么 HugePages 可以提升数据库性能
- 035 为什么 Linux 需要 Swapping
编程语言
- 014 为什么 Go 语言没有泛型
正文完
请博主喝杯咖啡吧!