ZYH 开发教程
学习中心/计划与打卡
计划与打卡

16 周学习计划

已有前端基础时,可单独采用的 16 周数据库、服务器和后端计划。

工具资料 · 不计入主线进度

第 1 阶段:基础工具(第 1 周)#

第 1 周:终端、Git、JavaScript 复习#

  • 学习:路径和文件;Git 仓库/提交/分支基础;JS 对象、数组、函数、模块、Promise、async/await。
  • 重点:看懂终端当前目录;小步提交;异步错误必须能捕获。
  • 动手:建立 backend-lab,写一个读取 JSON 文件并统计数据的脚本,至少提交 5 次。
  • 验收:不用教程创建仓库、运行脚本、制造一次异步错误并正确处理。

第 2 阶段:数据库(第 2–5 周)#

第 2 周:关系模型与基本 CRUD#

  • 学习:表/行/列/类型;主键;建表;插入、查询、更新、删除;过滤、排序、分页。
  • 重点:WHERE;NULL;更新/删除前先查询;选择正确类型。
  • 动手:建立图书借阅项目的前三张表,录入测试数据,完成 10 条单表查询。
  • 验收:不看答案完成 CRUD;解释主键和唯一约束的区别。

第 3 周:关系、约束与 JOIN#

  • 学习:一对多、多对多;外键、非空、唯一、检查约束;内连接、左连接;聚合和分组。
  • 重点:连接条件;业务规则尽量落到约束;WHERE 与 HAVING。
  • 动手:完成 ER 图和全部表;写热门图书、逾期、未借书用户等查询。
  • 验收:从需求独立画 ER 图;准确解释 INNER JOIN 与 LEFT JOIN。

第 4 周:索引、事务与安全#

  • 学习:ACID;提交/回滚;索引;执行计划;SQL 注入与参数化查询。
  • 重点:多步写入事务;索引不是越多越好;永不拼接用户输入。
  • 动手:实现事务化借书;给常用查询建索引,用 EXPLAIN 比较。
  • 验收:故意让事务第二步失败,确认第一步也回滚;解释复合索引列顺序。

第 5 周:数据库管理与项目验收#

  • 学习:用户/角色、最小权限、连接池概念、备份与恢复、迁移。
  • 重点:备份必须验证恢复;应用不用数据库超级用户。
  • 动手:整理项目一全部交付物;新建空库并恢复。
  • 验收:完成 项目一,随机 5 条查询至少完成 4 条。

第 3 阶段:服务器和网络(第 6–8 周)#

第 6 周:Linux 基础#

  • 学习:文件系统、权限、用户/组、软件安装、进程、磁盘和内存。
  • 重点:普通用户与最小权限;日志优先;谨慎执行管理员命令。
  • 动手:在 Ubuntu 练习环境创建部署用户,运行/停止进程并查看资源。
  • 验收:定位一个权限错误、一个找不到文件错误和一个端口占用错误。

第 7 周:网络、HTTP 与 SSH#

  • 学习:IP、端口、TCP、DNS、HTTP 请求/响应、状态码、SSH 密钥、防火墙。
  • 重点:请求完整路径;401/403 区别;数据库端口不暴露公网。
  • 动手:远程登录;运行 3000 端口服务;用 API 客户端观察请求;仅开放必要端口。
  • 验收:能画出浏览器到后端的路径,并依次排查访问失败。

第 8 周:服务、日志和 Nginx 初步#

  • 学习:systemd、服务开机启动、日志;Nginx 静态服务和反向代理。
  • 重点:配置测试后再重载;区分 Nginx 日志和应用日志。
  • 动手:让 Hello Web 服务自动启动;通过 Nginx 反向代理访问。
  • 验收:制造后端停止导致的 502,从日志定位并恢复。

第 4 阶段:后端开发(第 9–13 周)#

第 9 周:Node.js 与原生 HTTP#

  • 学习:Node 运行时、npm、模块、环境变量、异步 I/O;原生 HTTP 请求/响应。
  • 重点:async/await 错误;配置与代码分离;理解框架帮你做了什么。
  • 动手:不用 Express 写 /health 和 /time 两个 JSON 接口。
  • 验收:解释方法、路径、请求头、响应头、状态码和 JSON 如何产生。

第 10 周:Express 与 REST CRUD#

  • 学习:路由、中间件、控制器、错误处理;REST 命名、分页。
  • 重点:中间件顺序;404/500;统一错误格式;分页上限。
  • 动手:先用内存实现任务 CRUD,再接 PostgreSQL。
  • 验收:API 客户端完整跑通 CRUD,无效 ID/JSON 有合理错误。

第 11 周:数据库整合#

  • 学习:连接池、参数化查询、迁移、事务、分层结构。
  • 重点:连接释放;事务同一连接;数据库约束与应用校验并存。
  • 动手:把任务数据迁到 PostgreSQL,实现过滤、排序、分页。
  • 验收:代码中无 SQL 字符串拼接;并发请求后连接池仍正常。

第 12 周:认证、授权与安全#

  • 学习:密码哈希、Session/Token、Cookie 属性、CORS、CSRF、限流、输入校验。
  • 重点:认证不等于授权;资源所有权;敏感数据不进日志。
  • 动手:注册、登录;两个用户的数据隔离;登录限流。
  • 验收:尝试修改 URL 中的用户/任务 ID,确认不能越权;检查日志无秘密。

第 13 周:测试、日志与项目验收#

  • 学习:单元/集成测试、测试数据库、请求 ID、结构化日志、优雅关闭。
  • 重点:失败路径测试;测试独立;错误可追踪但不泄露细节。
  • 动手:补足至少 15 个测试,整理 API 和启动文档。
  • 验收:完成 项目二,由测试证明权限边界。

第 5 阶段:部署与综合项目(第 14–16 周)#

第 14 周:Docker 与 Compose#

  • 学习:镜像、容器、网络、卷、Dockerfile、Compose、健康检查。
  • 重点:持久化;容器内 localhost;密钥不写进镜像。
  • 动手:容器化应用和数据库;停止并重建容器,验证数据仍在。
  • 验收:从干净环境一条 Compose 启动流程跑通;解释镜像与容器区别。

第 15 周:公网部署、Nginx 与 HTTPS#

  • 学习:域名/DNS、反向代理、TLS 证书、防火墙、生产环境变量。
  • 重点:只开放 22/80/443(SSH 端口按实际策略);数据库不公网;证书续期。
  • 动手:部署项目三;启用 HTTPS;运行冒烟测试。
  • 验收:公网可访问,HTTP 跳转 HTTPS,重启服务器后服务自动恢复。

第 16 周:运维、恢复与总复盘#

  • 学习:日志轮转、健康检查、备份、恢复、发布和回滚、基础监控。
  • 重点:恢复演练;故障记录;能重建才算可维护。
  • 动手:完成项目三;模拟崩溃和数据库恢复;整理架构图、部署手册。
  • 验收:完成 项目三 全部检查,并做 5 分钟项目自述。

每周固定节奏#

日程建议内容
第 1 天文档/视频,建立概念,30–60 分钟动手
第 2 天跟练后改变需求,不照抄
第 3 天练习题或小功能
第 4 天查漏补缺,制造并修复错误
第 5 天无教程独立实现
第 6 天项目整合、测试和 README
第 7 天休息或 30 分钟复盘
可搜索标题、说明和正文Esc 关闭
从一个简单词开始试试“HTML”“数据库”“登录”或“部署”
在线练习修改代码并查看结果
运行结果