后端学习推荐阅读:先找问题,再查原文
资料不必从头背完。先运行一个小例子,再带着“哪个行为有保证、哪个只是建议”的问题查原文,会比同时打开十份学习路线更有收获。本页按本模块的练习顺序排列,作为同级的第一篇阅读入口。
请求和接口
- RFC 9110:HTTP 语义:查方法、状态码、条件请求。优先区分 safe 与 idempotent,而不是只背 GET/POST。
- RFC 9457:Problem Details:查错误正文格式,配合真实 HTTP 状态使用。
- RFC 9111:HTTP 缓存:查 Cache-Control、重验证与共享缓存;
no-cache和no-store不是同义词。
架构和演进
- Azure Architecture Styles:比较分层、微服务、Web-Queue-Worker 和事件驱动。厂商部署示例与通用架构概念要分开看。
- Hexagonal Architecture 原文:理解端口是业务交互约定、适配器是技术实现;“六边形”不是层数要求。
- CQRS:理解读写职责分离,不预设必须用两个数据库。
- Monolith First:关注作者讨论的成本和适用条件,别把经验建议当成绝对规则。
数据和消息
- PostgreSQL 18 事务隔离:用两个会话验证快照、锁和重试。
- PostgreSQL 18 多列索引:先写查询再设计索引,不机械套用索引口诀。
- RabbitMQ 确认机制:分别看 publisher confirm 与 consumer acknowledgement 的责任范围。
- Transactional Outbox:把数据库提交和消息发布之间的空档画出来。
- Saga Orchestration:关注补偿、重试和隔离限制,而不是只看成功路径。
上线以后
- Google SRE:监控分布式系统:从用户可观察的现象设置监控。
- OpenTelemetry Signals:分清指标、日志、追踪等信号的用途。
- Kubernetes 探针:分清进程存活与是否适合接收流量。
- AWS Lambda 实践:检查重用、幂等、并发和依赖资源,不假定每次请求都会获得全新进程。
阅读练习
每读一份资料,留下四行笔记:它解决什么问题;成立的条件;我当前系统对应哪个位置;怎样写一个失败测试。对不确定的解释保留疑问和版本,不用一段漂亮总结掩盖尚未验证的行为。