后端开发

beautiful_pic 后端开发是构建现代Web应用的核心技术,从基础的编程语言到复杂的API设计和数据库管理,本路径将带你系统掌握后端开发的技能。

学习建议

  • 初学者推荐从 Python + FastAPI 开始,快速上手
  • 有一定基础后可学习 Go + Gin,提升性能优化能力
  • 建议按照章节顺序循序渐进学习

参考资料


  • Python语法基础
    • 变量、数据类型(int, str, list, dict)
    • 控制流(if, for, while)
    • 函数定义和调用
    • 模块和包导入
  • 数据结构和算法
    • 内置数据结构(list, tuple, dict, set)
    • 基本算法(排序、搜索)
    • 时间复杂度分析
  • 面向对象编程
    • 类和对象
    • 继承和多态
    • 封装和抽象
  • 包管理和虚拟环境
    • uv 创建虚拟环境
    • uv 包管理
  • Go语法基础
    • 变量声明和类型
    • 函数和方法
    • 指针和内存管理
  • 并发编程
    • goroutines创建和管理
    • channels通信
    • sync包的使用
  • 包管理和模块
    • go mod初始化
    • 依赖管理
    • 包导入
  • 错误处理
    • error类型
    • panic和recover
    • 自定义错误

  • FastAPI快速入门
    • 安装和Hello World
    • 基本应用结构
  • 路由和请求处理
    • 路径参数和查询参数
    • 请求体处理
    • 响应模型
  • 数据模型(Pydantic)
    • BaseModel定义
    • 字段验证
    • 嵌套模型
  • 依赖注入
    • 依赖函数
    • 全局依赖
    • 路径依赖
  • 中间件和异常处理
    • 自定义中间件
    • 异常处理器
    • HTTP异常
  • 异步编程
    • async/await语法
    • 异步数据库操作
    • 并发请求处理
  • Gin快速入门
    • 安装和基本路由
    • 运行服务器
  • 路由和中间件
    • 路由分组
    • 中间件使用
    • 路由参数
  • 数据绑定和验证
    • JSON绑定
    • 表单绑定
    • 验证器
  • 错误处理
    • 自定义错误响应
    • 恢复中间件
  • 性能优化
    • 路由优化
    • 内存池使用

  • 资源导向设计
    • 遵循资源化的 URI(如 /users/123
    • 使用标准 HTTP 动词(GET/POST/PUT/DELETE)
    • 无状态性
    • 统一接口
  • HTTP方法
    • GET:获取资源
    • POST:创建资源
    • PUT:更新资源
    • DELETE:删除资源
  • 状态码
    • 2xx:成功(200 OK, 201 Created)
    • 4xx:客户端错误(400 Bad Request, 404 Not Found)
    • 5xx:服务端错误(500 Internal Server Error)
  • JSON数据格式
    • JSON结构与语法
    • 序列化和反序列化
    • 统一响应格式设计
  • CORS(跨域资源共享)
    • 浏览器同源策略
    • CORS配置方法
    • 预检请求处理
  • Cookie & Session
    • Cookie:浏览器端存储
    • Session:服务端会话
    • 安全性考虑
  • JWT(JSON Web Token)
    • 无状态认证方案
    • Token结构(Header, Payload, Signature)
    • 刷新Token机制
  • SSR(服务端渲染)
    • SEO友好
    • 首屏加载快
  • CSR(客户端渲染)
    • 用户交互流畅
    • 服务器压力小
  • 混合渲染
    • Next.js等现代框架
    • 按需选择渲染方式
  • OpenAPI规范(Swagger)
    • API规范定义
    • 版本控制
    • 自动文档生成
  • Swagger UI
    • 交互式文档
    • 在线测试API

  • SQL基础
    • CRUD操作(增删改查)
    • JOIN查询(内连接、外连接)
    • 子查询和聚合
  • 数据库设计
    • 表结构设计
    • 主键和外键
    • 索引优化
    • 范式理论
  • ORM(对象关系映射)
    • SQLAlchemy基础
    • 模型定义
    • 查询构建器
    • 关系映射(一对一、一对多、多对多)
  • 数据迁移
    • Alembic使用
    • 迁移脚本编写
    • 版本管理
  • MongoDB基础
    • 文档模型
    • CRUD操作
    • 集合和索引
  • 使用场景
    • 灵活的数据结构
    • 大数据量存储
    • 高并发读写
  • 连接池管理
    • 连接池配置
    • 性能调优
  • 查询优化
    • 执行计划分析
    • 索引策略
    • 慢查询优化

核心概念

  • 认证(Authentication):确认用户身份(谁在访问?)
  • 授权(Authorization):控制访问权限(能做什么?)
  • 基于Session的认证
    • Cookie-based会话
    • 服务端存储
    • 会话过期管理
  • 基于Token的认证
    • JWT(JSON Web Token)
    • Token生成和验证
    • Payload结构设计
    • 刷新Token机制
  • OAuth2.0
    • 授权码流程
    • 客户端类型
    • 第三方登录集成
  • 密码安全
    • bcrypt哈希加密
    • 密码强度验证
    • 防止暴力破解
  • HTTPS
    • SSL/TLS证书
    • 加密传输
  • 常见安全威胁
    • SQL注入防护
    • XSS攻击防护
    • CSRF防护

  • pytest框架
    • 测试函数编写
    • fixtures使用
    • 参数化测试
    • Mock和Patch
  • 测试覆盖率
    • coverage工具
    • 报告生成
    • 覆盖率目标设定
  • 集成测试
    • requests库测试
    • httpx异步测试
    • TestClient使用
  • 端到端测试
    • 完整流程测试
    • 数据库测试隔离
  • TDD(测试驱动开发)
  • 测试金字塔原则
  • CI/CD集成

  • 缓存策略
    • 缓存穿透、击穿、雪崩
    • LRU/LFU算法
    • 过期策略
  • Redis缓存
    • 键值存储
    • 数据结构(String, Hash, List, Set, ZSet)
    • 缓存更新策略
  • HTTP缓存
    • 客户端缓存
    • ETag和Last-Modified
    • Cache-Control头
  • Celery任务队列
    • Worker配置
    • 任务定义和调用
    • 定时任务
  • 消息队列
    • RabbitMQ/Redis作为broker
    • 任务重试机制
    • 监控和管理
  • 查询优化
    • 执行计划分析
    • 索引策略
    • N+1问题解决
  • 读写分离
    • 主从复制
    • 负载分配
  • 基本概念
    • 水平扩展
    • 负载均衡算法(轮询、加权、最少连接)
  • 实现方式
    • Nginx负载均衡
    • 健康检查

  • Docker基础
    • 镜像构建(Dockerfile)
    • 容器运行和管理
    • 多阶段构建优化
  • Docker Compose
    • 多容器编排
    • 服务依赖管理
    • 开发环境配置
  • 生产环境配置
    • 环境变量管理
    • 配置文件分离
    • 日志管理
  • 应用服务器
    • Gunicorn/Uvicorn配置
    • 进程管理
    • 监控和重启
  • 持续集成
    • GitHub Actions
    • 自动化测试
    • 代码质量检查
  • 持续部署
    • 自动化部署流程
    • 回滚策略
  • 应用监控
    • 性能指标收集
    • 错误追踪
  • 日志系统
    • 日志收集和分析
    • 日志等级管理

本篇文档由 Fridemn 编写。 封面图片来自 Kevin \(^▽^@)ノ