Why’s THE Design 一系列关于计算机领域中程序设计决策的文章

Why’s THE Design是一系列关于计算机领域中程序设计决策的文章,作者在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响,文章写的非常详细,下面是目录,喜欢的可以前往学习。

Why’s THE Design:https://draven.co/whys-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 为什么数据库不应该使用外键
036 为什么 OLAP 需要列式存储

操作系统
023 为什么 Linux 需要虚拟内存
029 为什么系统调用会消耗较多资源
030 为什么 Linux 默认页大小是 4KB
032 为什么 CPU 访问硬盘很慢
033 为什么 NUMA 会影响程序的延迟
034 为什么 HugePages 可以提升数据库性能
035 为什么 Linux 需要 Swapping
038 为什么早期的 Windows 需要整理碎片
039 为什么 Linux 和 macOS 不需要碎片整理

编程语言
014 为什么 Go 语言没有泛型

软件工程
002 为什么使用通信来共享内存
004 为什么你应该使用 Git 进行版本控制
006 为什么使用 MD5 存储密码非常危险
007 为什么基础服务不应该高可用
008 为什么总是需要无意义的 ID
018 为什么流媒体直播的延迟很高
022 为什么 0.1 + 0.2 = 0.300000004
025 为什么 0.1 + 0.2 = 0.3
037 为什么 Kubernetes 要替换 Docker

圈主 管理员

热门评论
:
该帖子评论已关闭
图片审查中...
编辑答案: 我的回答: 最多上传一张图片和一个附件
x
x
个人中心
今日签到
有新私信 私信列表
搜索