<a id="reference-engineering-practice-5-底层程序逻辑设计与工程优化项"></a>
# 底层程序逻辑设计与工程优化项

这一节是底层程序逻辑、运行模型、性能模型、并发模型、数据模型和工程交付优化的检查清单。用于代码实现、重构、性能排查和 AI 编程验收前的系统性自检。

```text
CPU
事务
缓存
并发
内存
IO
网络
数据结构
算法
抽象
接口
函数
递归
循环
条件分支
顺序性
副作用
状态
数据流
控制流
进程模型
线程模型
协程模型
用户态线程 vs 内核线程
同步模型
异步模型
事件驱动模型
批处理模型
流式处理模型
计算模型
调度模型
内存模型
并发模型
数据模型
状态模型
错误模型
性能模型
成本模型
容量模型
CPU cache 友好设计
CPU 使用优化
CPU 亲和性
上下文切换成本
分支预测意识
分支预测友好设计
流水线友好设计
指令级并行意识
SIMD 思维
向量化计算
GPU 计算设计
GPU 内存访问优化
算子融合
计算图优化
数值稳定性设计
浮点误差控制
近似计算
增量计算
重复计算消除
预计算与查表
延迟计算
懒加载
即时计算 vs 预计算
本地计算 vs 远程调用
计算复杂度优化
时间复杂度优化
空间复杂度优化
空间换时间设计
数据局部性优化
内存访问优化
内存分配优化
栈/堆使用判断
逃逸分析意识
GC 友好设计
JIT/解释执行理解
内联优化意识
对象生命周期设计
内存生命周期管理
内存泄漏控制
内存碎片控制
堆外内存管理
引用计数
弱引用
内存对齐
结构体 padding
TLB 命中率意识
页缓存理解
缺页中断意识
内存分页
NUMA 感知设计
内存屏障理解
happens-before 关系
可见性
有序性
原子性
false sharing 避免
原子操作与 CAS
ABA 问题
锁粒度设计
锁竞争优化
读写锁适用性
可重入锁风险
锁顺序约束
无锁数据结构
锁自由设计
等待自由设计
死锁
活锁
饥饿
优先级反转
条件变量
信号量
屏障同步
并发安全设计
并发正确性设计
并发测试
竞态检测
任务拆分策略
工作队列设计
优先级调度
调度公平性
线程池设计
线程池饱和处理
队列积压处理
背压机制
超时传播
取消传播
异步上下文传播
异步异常处理
同步/异步边界设计
阻塞式等待识别
阻塞 IO
非阻塞 IO
IO 多路复用
select / poll / epoll / kqueue
io_uring 理解
Reactor 模型
Proactor 模型
事件循环设计
事件队列设计
事件优先级
事件饥饿
系统调用成本意识
文件描述符管理
句柄泄漏控制
资源释放
资源隔离
资源配额
资源池化
对象池设计
连接池设计
缓冲区设计
零拷贝思路
DMA 理解
mmap 使用判断
sendfile 使用判断
IO 合并
批处理与合并请求
网络调用优化
DNS 解析成本
DNS 缓存策略
TCP 连接建立成本
TCP 慢启动
TCP 拥塞控制
Nagle 算法影响
KeepAlive 策略
连接复用
连接泄漏控制
Socket buffer 调优
HTTP/1.1 vs HTTP/2 vs HTTP/3
TLS 握手成本
证书校验成本
长连接管理
半开连接处理
请求队头阻塞
网络超时设计
网络抖动处理
网络分区处理
MTU / 分片意识
带宽与延迟权衡
序列化优化
反序列化成本控制
压缩策略选择
压缩率 vs CPU 成本权衡
数据编码选择
数据格式选择
Schema 设计
Schema 演进
字段兼容性
枚举扩展风险
默认值策略
数据结构选择
缓存结构选择
队列与堆选择
索引结构选择
概率数据结构
布隆过滤器
HyperLogLog
Count-Min Sketch
LRU / LFU / FIFO 选择
树结构选择
哈希结构选择
跳表选择
B+Tree 理解
LSM Tree 理解
图结构建模
排序策略选择
查找策略选择
贪心策略判断
动态规划建模
图算法选择
分治策略选择
回溯策略选择
启发式算法选择
算法策略选择
算法稳定性
算法可解释性
循环结构优化
递归深度控制
尾递归优化判断
无边界递归避免
数据预聚合
数据分片与分区
数据倾斜处理
MapReduce 思维
并行计算设计
批处理设计
流式处理设计
冷热路径拆分
冷路径隔离
热路径优化
性能瓶颈识别
性能指标定义
Profiling 能力
火焰图分析
慢查询分析
Trace 分析
日志埋点设计
结构化日志
日志等级设计
Trace ID 传播
Span 设计
Metrics 设计
高基数指标控制
Dashboard 设计
告警规则设计
告警降噪
SLO / SLA / SLI
错误预算
黑盒监控
白盒监控
用户体验监控
业务指标监控
容量水位监控
Benchmark 设计
压测设计
容量评估
峰值流量模型
流量预测
性能回归测试
优化验证
优化收益评估
优化 ROI 评估
过早优化识别
伪优化识别
缓存层级设计
分层缓存
本地缓存
分布式缓存
页面缓存
对象缓存
查询缓存
结果复用
缓存对象选择
缓存 key 设计
缓存一致性
缓存失效策略
缓存淘汰策略
缓存预热机制
缓存穿透处理
缓存击穿处理
缓存雪崩处理
热点缓存处理
缓存污染控制
缓存容量控制
缓存命中率评估
数据访问优化
数据访问方式选择
数据访问路径设计
查询路径设计
写入路径优化
索引设计
覆盖索引
索引下推
回表成本控制
分页优化
游标分页
N+1 查询消除
查询计划理解
执行计划稳定性
统计信息维护
慢查询治理
锁等待分析
死锁分析
事务范围控制
事务边界
事务隔离级别
MVCC 理解
WAL 理解
Redo / Undo 日志
Checkpoint
Buffer Pool
页分裂控制
Compaction
分区裁剪
分库分表
读写分离
冷热数据分层
数据归档
TTL 策略
CDC 变更捕获
数据回放
数据修复
数据血缘
数据质量校验
范式化 vs 反范式化
数据冗余与同步
热点数据处理
数据生命周期设计
数据流路径设计
数据转换链路设计与优化
数据校验位置
数据一致性设计
顺序性与版本控制
版本冲突解决
逻辑时钟
向量时钟
时钟偏移处理
读己之写
单调读
强一致性
最终一致性
CAP 理解
PACELC 理解
分布式事务
Saga 模式
TCC 模式
Outbox 模式
Inbox 模式
幂等性设计
幂等键设计
去重设计
请求唯一 ID
消息可靠投递
至少一次语义
至多一次语义
恰好一次语义
消息重复处理
消息乱序处理
消息积压处理
消费位点管理
分布式锁
租约机制
Fencing Token
Leader 选举
Raft / Paxos 理解
脑裂处理
服务发现
负载均衡
一致性哈希
分片迁移
数据再均衡
纯逻辑与 IO 分离
数据流与控制流分离
副作用控制
状态管理方式选择
状态一致性
状态机设计
状态机 vs 条件分支
状态流转设计
中间状态设计
数据不变量
前置条件与后置条件
顺序依赖设计
短路逻辑设计
分支条件设计
早返回设计
控制流扁平化
执行路径设计
主流程与分支流程设计
代码路径可读性
复杂度控制
依赖方向设计
模块边界设计
包依赖治理
循环依赖检测
接口语义设计
API 契约设计
接口版本管理
向前兼容
向后兼容
错误码规范
错误语义稳定性
部分响应设计
批量接口设计
限流响应协议
请求签名
契约测试
函数职责设计
逻辑拆分粒度
抽象层次选择
组合方式选择
处理模式选择
策略模式 vs switch-case
管道模式 vs 单体函数
事件驱动 vs 直接调用
同步处理 vs 异步处理
批处理 vs 实时处理
配置化 vs 硬编码
配置化 vs 代码化
通用化 vs 专用化
规则引擎 vs 硬编码
通用框架 vs 专用实现
可替换性
规则隔离
扩展点设计
变更影响范围
技术债识别
技术债偿还策略
迁移策略
废弃策略
兼容窗口
文档化
ADR 决策记录
设计评审
接口评审
性能评审
安全评审
输入合法性校验
边界条件覆盖
异常分类
错误传播
错误封装
错误恢复
部分成功处理
流程中断与恢复
中断、回滚、重试流程
重试策略
指数退避
重试抖动 jitter
重试风暴防护
失败降级策略
限流设计
熔断器设计
舱壁隔离
过载保护
请求排队策略
丢弃策略
快速失败
故障隔离
故障注入
混沌工程
降级开关
灰度降级
超时预算
Deadline 传播
服务健康检查
自愈机制
优雅降级
优雅关闭
启动预热
冷启动控制
灾难恢复
备份与恢复
RPO / RTO
认证设计
授权设计
权限模型
最小权限原则
权限边界
身份冒用防护
输入注入防护
SQL 注入
命令注入
XSS
CSRF
SSRF
反序列化风险
路径穿越
敏感信息脱敏
日志脱敏
密钥管理
Token 生命周期
加密存储
传输加密
签名校验
重放攻击防护
多租户隔离
安全审计
依赖漏洞治理
供应链安全
单元测试设计
集成测试设计
端到端测试
回归测试
稳定性测试
兼容性测试
模糊测试 Fuzzing
属性测试 Property-based Testing
测试数据构造
Mock 边界
测试隔离
可测性设计
确定性测试
时间依赖测试
随机性控制
灰度发布
蓝绿发布
金丝雀发布
滚动发布
回滚策略
配置发布
特性开关
Feature Flag
数据库变更发布
兼容性发布
双写切换
流量切换
影子流量
压测环境隔离
生产变更风险评估
变更审计
发布前检查
发布后验证
Runbook
应急预案
值班机制
资源成本评估
CPU 成本
内存成本
存储成本
网络成本
第三方 API 成本
云资源成本
成本预算
弹性伸缩
扩容策略
缩容策略
成本收益权衡
反模式识别
大锁
大事务
全局状态污染
重复 IO
重复计算
过深嵌套
隐式控制流
过度通用化
过早抽象
过早优化
伪优化
缺少退路
缺少幂等
缺少超时
缺少取消
缺少隔离
缺少限流
缺少监控
缺少回滚
缺少兼容
缺少验证
缺少容量评估
```
