20 分钟
全栈开发

全栈开发全景图

就讲全栈开发是什么,前端、后端、数据库怎么配合的。

  • 理解全栈开发的定义和价值
  • 了解前端、后端、数据库的职责
  • 掌握 HTTP 请求-响应模型
  • 了解现代全栈技术栈选型

什么是全栈开发?

全栈开发(Full-Stack Development)指的是一个开发者能够同时负责前端(用户看到的界面)、后端(服务器上的业务逻辑)和数据库(数据存储)的开发。

就拿餐厅打比方:前端是菜单和餐桌,顾客直接接触的部分;后端是厨房,做菜的地方;数据库是仓库,存食材的地方。全栈工程师就是能同时管这三个部分的人。

🐍为什么要学全栈?

创业公司、小团队里,全栈工程师能独立搞定一个产品从0到1的全部开发。大团队里,懂全栈能帮你更好和前后端同事协作,设计出更合理的系统架构。字节跳动、腾讯这些大厂的高级工程师岗位,几乎都要求全栈视野。

三层架构

一个典型的 Web 应用分为三层:

示例
┌─────────────────────────────────┐
│         前端(Frontend)          │  ← 用户看到的界面
│   HTML / CSS / JavaScript        │
│   React / Vue / Next.js          │
└──────────────┬──────────────────┘
               │ HTTP 请求 / JSON
┌──────────────▼──────────────────┐
│         后端(Backend)           │  ← 业务逻辑、API
│   Python / Node.js / Java        │
│   Django / FastAPI / Flask       │
└──────────────┬──────────────────┘
               │ SQL / ORM
┌──────────────▼──────────────────┐
│         数据库(Database)        │  ← 数据持久化
│   PostgreSQL / MySQL / Redis     │
└─────────────────────────────────┘

HTTP 协议基础

前端和后端之间通过 HTTP 协议通信。你在浏览器地址栏输入网址并回车,浏览器就向服务器发送了一个 HTTP GET 请求。

Python
# 用 Python 模拟 HTTP 请求(概念演示)
print("""HTTP 请求结构:
GET /api/users HTTP/1.1          ← 请求行:方法 + 路径 + 版本
Host: example.com                 ← 请求头
Authorization: Bearer xxx         ← 认证信息

HTTP 响应结构:
HTTP/1.1 200 OK                   ← 状态行:版本 + 状态码
Content-Type: application/json    ← 响应头

{"users": [{"name": "小明"}]}     ← 响应体(JSON)""")
ℹ️常见 HTTP 方法

GET:获取数据;POST:创建数据;PUT/PATCH:更新数据;DELETE:删除数据。这四个方法对应数据库的增删改查(CRUD)。

ℹ️常见状态码

200 成功;201 创建成功;400 请求错误;401 未登录;403 无权限;404 不存在;500 服务器错误。

现代技术栈选型

Python 全栈常见组合:

主流 Python 全栈技术栈

方案A:Django 全家桶 前端:Django Templates + Bootstrap 后端:Django + DRF 数据库:PostgreSQL 适合:内容型网站、管理后台、快速 MVP方案B:前后端分离(推荐) 前端:Next.js / React + Tailwind CSS 后端:FastAPI(高性能异步) 数据库:PostgreSQL + Redis 适合:SaaS 产品、移动端 API、AI 应用方案C:轻量级 前端:Flask + Jinja2 / HTMX 后端:Flask 数据库:SQLite → PostgreSQL 适合:小型工具、个人项目、原型验证

🐍技术选型的底层逻辑

别盲目追新。选型看这几点:团队熟悉度社区生态性能需求部署成本。FastAPI 性能好但生态不如 Django 成熟;Django 功能全但异步支持弱。本项目(朋友好学)用 Next.js + Pyodide 的纯前端方案,零后端依赖,是特殊但聪明的架构选择——后面的项目解析课会详细讲原因。

选择题

前端和后端之间通常用什么格式交换数据?

选择题

下列哪一项属于后端的职责?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

网络侧:DNS→TCP/TLS→HTTP 请求与响应;浏览器侧:解析 HTML 建 DOM、解析 CSS 建 CSSOM、合并成渲染树,再经过布局(Layout)、绘制(Paint)、合成(Composite)上屏。前端性能优化几乎都围绕这条链路:减小资源体积、优化关键渲染路径、避免频繁触发重排重绘。

挑战任务

拼出 HTTP 请求行

简单+50 XP

浏览器每次请求都先发送一行「方法 + 路径 + 协议版本」。实现request_line(method, path),拼出形如 GET /api/users HTTP/1.1 的请求行,方法要大写。

拼出 HTTP 请求行
1 个测试用例

课后作业

画出你理解的全栈架构

中等+15 XP

拿纸笔或者画图工具,画个 Web 应用的三层架构图,标清楚每一层的职责和用的技术。拍个照或者截个图存好。

画出你理解的全栈架构
1 个测试用例