后端不仅是写接口,而是构建一个可靠、扩展性强的系统。学习难点在于:
-
资料繁杂,难以构建知识体系;
-
多数新手依赖单一框架(如 Spring Boot),对底层不了解;
-
技术迁移时知识无法复用(如 Ruby → Go)。
本篇文章将按体系整理。
后端系统架构与通信流程
梳理一次请求从浏览器到服务器再返回的路径:
-
经过网络、CDN、防火墙、负载均衡器;
-
到达后端(如 AWS EC2 上的服务);
-
服务解析 HTTP 请求并返回响应。
HTTP 协议重点
-
请求方法:GET / POST / PUT / DELETE
-
预检请求(CORS Preflight)
-
常见状态码(200/301/400/401/403/404/500)
-
缓存(Etag、Max-Age)
-
HTTP/1.1 vs HTTP/2 vs HTTP/3
-
TLS/HTTPS 加密传输
理解协议是后端开发的基础。
路由设计与 API 管理
路由类型
-
静态路由
-
动态路由
-
嵌套路由
-
通配符路由
-
正则路由
API 版本管理
-
/v1/users
-
Header-Version
-
Query-Version
通过路由分组可共享中间件与权限验证。
序列化与反序列化
用于网络传输数据格式化与还原的过程。
格式
-
文本:JSON、XML
-
二进制:Protobuf
JSON 常见问题
-
缺少字段 / 多余字段
-
时间格式
-
数字精度
-
自定义序列化
-
JSON Schema 验证
⚠ 反序列化不当会导致安全问题(如代码执行)。
身份认证与授权
认证方式
-
Session + Cookie
-
Basic Auth
-
JWT
-
OAuth / OpenID Connect
-
API Key
-
多因素认证(MFA)
密码安全
-
盐值(Salt)
-
哈希(Hash)
-
Key stretching
授权模型
-
RBAC
-
ABAC
需要防范的安全攻击:
-
CSRF
-
XSS
-
MITM
-
信息泄露
-
时序攻击
数据验证与转换
验证类型
-
语法(邮箱格式)
-
语义(生日不能是未来)
-
类型(数字、布尔)
最佳实践
-
前端负责体验
-
后端负责安全
-
失败快速返回
-
字段去空格、大小写统一等正规化
错误应统一格式返回。
中间件机制
中间件可以处理:
-
鉴权
-
日志
-
错误处理
-
CORS
-
压缩
中间件顺序与性能密切相关。
请求上下文(Request Context)
用于保存一次请求的状态:
-
请求头、方法、URL
-
用户信息
-
Trace ID
-
缓存 / 权限相关数据
注意避免 context 过大导致内存泄漏。
控制器与处理器设计
MVC 模式的职责划分:
-
Controller:接收请求
-
Service:业务逻辑
-
DAO / Repository:数据库访问
RESTful 设计规范:
-
POST → 创建
-
GET → 读取
-
PUT/PATCH → 更新
-
DELETE → 删除
数据库设计与管理
理论
-
ACID
-
CAP
关键技术
-
索引
-
查询优化
-
连接池
-
事务
-
ORM 使用与权衡
数据库迁移工具确保结构一致性。
业务逻辑层(BLL)
业务逻辑层要符合:
-
单一职责
-
关注点分离
-
抽象与解耦
错误传播要清晰可控。
缓存机制
缓存用于提升性能,常见策略:
-
Cache Aside
-
Write Through
-
Write Back
-
TTL / LRU / LFU
缓存分层:
-
本地缓存
-
分布式缓存(Redis)
任务队列与事务邮件
用于处理非实时任务:
-
邮件发送
-
图像处理
-
API 调用
-
批处理任务
组件包括:
-
producer / consumer
-
broker(如 RabbitMQ, Kafka)
支持:
-
重试
-
优先级
-
限流
Elasticsearch
搜索引擎的核心:
-
倒排索引
-
TF-IDF
-
分片、段(Segment)
应用场景:
-
全文搜索
-
日志分析
-
聚合统计
错误处理
错误类型:
-
语法
-
运行时
-
逻辑
最佳实践:
-
全局异常处理
-
统一错误响应
-
避免敏感信息泄露
-
使用 Sentry / ELK 做监控
配置管理
配置必须与代码解耦:
-
环境变量
-
配置文件(JSON/YAML)
-
动态配置(feature toggle)
确保安全,尤其是密钥管理。
可观测性:日志、监控、追踪
可观测性的三大支柱:
-
日志(Logs)
-
指标(Metrics)
-
追踪(Trace)
常用工具:
-
Prometheus
-
Grafana
-
Jaeger
优雅关闭(Graceful Shutdown)
服务器关闭流程:
-
捕获信号(SIGTERM)
-
停止接收新请求
-
等待当前请求处理完
-
关闭连接、释放资源
安全最佳实践
必须重点关注的威胁:
-
SQL 注入
-
NoSQL 注入
-
XSS
-
CSRF
-
不安全反序列化
核心原则:
-
最小权限
-
纵深防御
-
默认安全
性能优化与扩展性
关注:
-
数据库索引
-
减少 N+1 查询
-
批量操作
-
内存泄漏监控
-
异步处理非关键任务
-
优雅降级
并发与并行
-
并发:处理 I/O 密集任务
-
并行:CPU 密集任务
大文件与对象存储
-
大文件分片上传
-
流式处理
-
使用对象存储(如 S3)
实时后端系统
技术:
-
WebSocket
-
Server-Sent Events(SSE)
-
Pub/Sub 模式
测试与代码质量
测试类型:
-
单元
-
集成
-
E2E
-
性能
-
安全
-
负载
持续集成(CI)确保代码质量与稳定性。
因子应用
用于构建现代云原生应用的设计哲学:
-
配置分离
-
声明式依赖
-
构建/发布/运行分离
-
日志作为事件流
OpenAPI 与 API 设计
工具链:
-
Swagger UI
-
Codegen
-
Postman
OpenAPI 用于:
-
API 文档
-
自动生成 SDK
-
Mock 服务
Webhooks
用于第三方系统回调,例如:
-
GitHub
-
Stripe
-
Slack
包括:
-
事件
-
签名验证
-
重试机制
-
HTTPS
DevOps 基础
包含:
-
CI / CD
-
基础设施即代码(IaC)
-
Docker 容器化
-
Kubernetes 编排
-
蓝绿部署、滚动更新
现代后端工程必不可少的技能方向。
总结:成为优秀后端工程师的关键
-
不仅要学框架,更要理解底层原理。
-
构建自己的知识体系,而不是碎片化学习。
-
安全、性能、架构、可观测性是高级后端的核心能力。
-
持续学习与实践是唯一的成长之路。
如果你坚持把以上知识逐步掌握,你会真正从“会写 CRUD”成长为“能设计系统”的后端工程师。

被折叠的 条评论
为什么被折叠?



