# 自学技术与知识点总结

## 前端工程

- **状态分层**：原始请求数据、派生统计和临时表单状态分开，减少互相覆盖。
- **组件边界**：把上传、公告、事务、检索等流程按责任拆分，组件通过明确的输入和事件通信。
- **可访问性**：表单有标签，状态变化有可读文本，键盘操作和 `prefers-reduced-motion` 有对应路径。
- **弱网体验**：只有服务端明确支持去重的接口，才能用同一幂等键和同一请求体重试写操作；幂等键本身不提供去重保证。超时提示“结果待确认”，避免用户重复点击造成重复提交；校验、权限和版本冲突应处理后再操作。

## 数据分析

- **先定义分母**：比例、平均值和完成率先写清楚统计口径，再设计图表。
- **完整时间轴**：没有事件的日期也要补零，避免趋势图因为缺失日期而误导阅读。
- **数据质量**：字段约束、重复 ID、非法日期和事务回滚应该在管道入口处理。
- **可复现**：固定种子、记录参数、分离输入与聚合快照，让别人能够复跑同一个结果。

## 大数据与系统思维

- **分区与倾斜**：分区数量影响并行度；热点键会让少数任务拖慢整体执行。
- **小文件问题**：分布式输出要考虑文件数量与下游读取成本，不把“分区更多”当成永远正确。
- **服务端聚合**：浏览器适合读聚合结果，大规模明细应分页、抽样或在服务端降采样。

这些笔记与 `frontend-data-lab` 中的合成数据管道互相对应，适合作为继续学习和面试讨论的索引。
