Next:
Contents
Contents
面向数据设计
Richard Fabian
zko (Translator)
Contents
面向数据设计
一切围绕数据
数据不是问题域
数据与统计
数据是可变的
数据的形态
框架(framework)
结论和启示
关系型数据库
复杂状态
为复杂的数据寻找计算框架
标准化数据
标准化
主键(Primary key)
第一范式 (1st Normal Form)
第二范式 (2nd Normal Form)
第三范式 (3rd Normal Form)
Boyce-Codd范式(Boyce-Codd Normal Form)
域键和领域知识
反思
操作
总结
流处理
为什么数据库技术很重要?
存在性处理
复杂度
调试
为什么要用 if
处理的类型
避免使用 boolean
慎用枚举
初探多态
动态运行时多态
事件处理
基于组件的对象
野生组件
远离层级结构
面向管理器
没有什么实体
层级细节水平和隐式状态
从零到无限
快照
JIT 快照
替代维度
真正的指标
超越空间
总体 LoD (如何减少实例数量)
查找
索引
面向数据查询
寻找极值是排序问题
查找随机是哈希(或树)问题
排序
真的必要吗?
插入排序与并行归并排序
针对平台排序
优化和实现
什么时候应该做优化?
反馈
了解极限
优化策略
定义问题
测量
分析
实现
确认
总结
表格
变换
碰撞的空间集
针对大量数据惰性求值
必要性-只取所需
变化的长度集
间接连接
数据驱动的技术
SIMD
数组的结构
帮助编译器
减少顺序依赖
减少内存依赖
察觉缓冲区写入
别名(Aliasing)
返回值优化
缓存行利用率
伪共享(False Sharing)
注意推测执行
分支预测
避免被驱逐
自动矢量化
维护与复用
宇宙层级
调试
生命周期
远离指针
不良状态
复用性
可复用的函数
单元测试
重构
问题出在哪?
危害
映射问题
内部化状态
面向实例开发
层设计与变革
分工
可复用的通用代码
About this document ...