mirror of
https://github.com/tradecatlabs/vibe-coding-cn.git
synced 2026-07-27 18:57:50 +00:00
579 lines
9.5 KiB
Markdown
579 lines
9.5 KiB
Markdown
|
|
<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
|
||
|
|
重复计算
|
||
|
|
过深嵌套
|
||
|
|
隐式控制流
|
||
|
|
过度通用化
|
||
|
|
过早抽象
|
||
|
|
过早优化
|
||
|
|
伪优化
|
||
|
|
缺少退路
|
||
|
|
缺少幂等
|
||
|
|
缺少超时
|
||
|
|
缺少取消
|
||
|
|
缺少隔离
|
||
|
|
缺少限流
|
||
|
|
缺少监控
|
||
|
|
缺少回滚
|
||
|
|
缺少兼容
|
||
|
|
缺少验证
|
||
|
|
缺少容量评估
|
||
|
|
```
|