全栈开发逻辑手册

核心哲学:数据驱动。先想清楚数据长什么样(数据库),再想怎么操作数据(后端),最后想怎么给用户看(前端)。

1. 数据库 (Database) —— 数据的“家”

核心逻辑: 确立数据模型与关系。

  • 职责

    • Schema 设计:定义实体(如用户、订单、文章)。

    • 关系定义:确定实体间的连接(一对一、一对多、多对多)。例如:一个用户可以有多份订单。

    • 持久化:确保数据在断电或服务重启后依然存在。

    • 一致性约束:保证数据不“脏”(例如:邮箱字段必须唯一,外键必须存在)。

  • 开发流

    1. 分析业务需求,画出 ER 图(实体关系图)。

    2. 编写 SQL 迁移脚本 (Migration) 或定义 ORM 模型。

    3. 建立索引 (Index) 以优化未来的查询速度。

2. 后端 (Backend) —— 数据的“管家”

核心逻辑: 安全地接收请求,处理业务,存取数据库,返回结果。

  • 职责

    • API 接口定义:制定前端与后端对话的协议(RESTful 或 GraphQL)。

    • 鉴权与授权 (Auth):确认“你是谁”(登录)以及“你能做什么”(权限)。

    • 输入验证:永远不要相信前端传来的数据(防 SQL 注入、格式校验)。

    • 业务逻辑:最复杂的部分。例如:计算价格、生成发票、发送邮件、调用第三方服务。

    • 数据读写:作为中间人,向数据库发送指令并获取结果。

  • 开发流

    1. 定义路由 (Router):如 GET /users。

    2. 编写控制器 (Controller):解析请求参数。

    3. 调用服务层 (Service):执行核心业务逻辑。

    4. 调用数据层 (Repository/DAO):与数据库交互。

    5. 返回标准化的 JSON 响应(包含数据或错误码)。

3. 前端 (Frontend) —— 数据的“脸面”

核心逻辑: 良好的交互体验,将后端的数据可视化,将用户的操作转化为请求。

  • 职责

    • UI 构建:将设计稿转化为代码(HTML/CSS 结构与样式)。

    • 状态管理:管理应用瞬时数据(如:当前是否加载中、购物车里有什么、用户是否登录)。

    • 网络通信:使用 Fetch/Axios 向后端 API 发起请求。

    • 路由管理:控制页面跳转(SPA 单页应用)。

    • 交互反馈:给用户即时反馈(加载转圈、错误提示、成功动画)。

  • 开发流

    1. 拆分组件 (Components):如导航栏、列表卡片。

    2. 编写静态页面。

    3. 接入 API (Data Binding):将静态内容替换为后端返回的数据。

    4. 处理异常状态(断网、404、500错误)。


4. 部署 (Deployment) —— 交付

核心逻辑: 将代码从你的本地电脑移动到公共服务器,并确保其持续运行。

  • 流程

    1. 构建 (Build):将前端代码编译为静态文件 (HTML/JS/CSS),将后端代码编译或准备好运行时环境。

    2. 环境配置 (Env):注入敏感信息(数据库密码、API Key),绝对不能写在代码里。

    3. 服务托管:运行后端服务,托管前端资源。

    4. 域名与SSL:配置 DNS,开启 HTTPS。


5. 关于 Cloudflare 部署

答案:可以,而且现在非常流行。

Cloudflare 已经不仅仅是一个 CDN,它提供了一整套Serverless(无服务器) 全栈解决方案。使用 Cloudflare 部署的逻辑与传统 VPS(如 AWS EC2, 阿里云)有所不同,具体如下:

方案 A:Cloudflare 全家桶 (纯 Serverless 架构)

适合:中小型应用、高并发、全球访问、低成本。

  1. 前端 Cloudflare Pages

    • 逻辑:连接你的 GitHub 仓库。当你 Push 代码时,Cloudflare 自动构建(Build)前端项目(React/Vue/Next.js 等),并分发到全球边缘节点。

    • 优势:速度极快,免费额度大。

  2. 后端 Cloudflare Workers

    • 逻辑:你不需要买服务器,不需要装 Linux。你只写函数(JavaScript/TypeScript/Rust)。代码运行在 Cloudflare 的边缘节点上。

    • 注意:Workers 是无状态的,且运行时间有限制(通常几毫秒到几秒)。

  3. 数据库 Cloudflare D1 (SQL) 或 KV / R2

    • D1:Cloudflare 自家的基于 SQLite 的边缘数据库,适合关系型数据。

    • KV:键值存储,适合存配置、Session。

    • R2:对象存储,存图片、文件(类似 AWS S3)。

方案 B:混合部署 (前端 CF + 后端传统)

适合:已有复杂的后端架构,或必须要用 Docker/特定语言环境。

  1. 前端:依然托管在 Cloudflare Pages

  2. 后端:部署在传统云厂商(AWS/DigitalOcean/阿里云),暴露 API。

  3. 连接:前端通过 API 访问后端。Cloudflare 提供 DNS 解析和 DDoS 保护。

总结建议

如果你是一个人开发新项目:
推荐 Cloudflare Pages (托管前端) + Cloudflare Workers (写后端逻辑) + Cloudflare D1 (数据库)

理由

  1. 运维成本几乎为 0:不用管服务器死机、不用管系统升级。

  2. 部署极快:git push 后自动上线。

  3. 免费额度非常良心:对于个人项目几乎不需要花钱。