第三课:一个人做项目,项目架构到底怎么搭
一个人做项目,项目架构到底怎么搭
这一篇的目标:不是让你背架构名词,而是让你学会把一个项目拆成能真正开工的结构。
很多同学做项目时,第一反应是先写页面,或者先写接口。
刚开始看起来很快,但写着写着就会发现:页面越来越多,接口越来越乱,数据库字段越改越散,最后项目虽然能跑,但自己都不敢再动。
这就是没有先搭项目架构的问题。
为了让第一次接触项目架构的同学也能跟着走,本文会采用“分块式教学”的方式:一个知识块讲清一个问题,每块都有结论、解释、例子和操作方法。
知识块 1:先弄懂什么是项目架构
本块结论:架构不是高深概念,它就是提前想清楚“项目分成几块,每块放哪里,每块怎么配合”。
1. 这是什么
“架构”听起来很大,其实可以先理解成一句话:
架构,就是把项目里不同的部分放在合适的位置,并规定它们怎么配合。
一个完整项目里,通常会有这些东西:
- 页面
- 接口
- 业务逻辑
- 数据库
- 配置
- 文档
如果你不提前分清楚,它们就会混在一起。
最后你会发现:一个页面文件里既有页面代码,又有接口逻辑,还夹着一堆数据处理,后面一改就容易出问题。
2. 为什么重要
架构的作用不是让项目看起来“高级”,而是让项目更容易继续做下去。
它能解决三个问题:
| 问题 | 没有架构时 | 有架构时 |
|---|---|---|
| 文件乱放 | 不知道代码该放哪 | 每类代码有固定位置 |
| 功能难改 | 改一个地方影响一大片 | 知道应该改哪一层 |
| 项目难讲 | 面试或答辩时说不清 | 能清楚说明项目结构 |
3. 举个例子
假设你做一个“校园二手交易平台”。
如果没有架构,你可能会这样写:
一个页面里:
写页面
写请求
写商品规则
写用户判断
写数据处理
这样一开始没问题,但功能一多就会乱。
更好的方式是:
页面只负责展示
接口只负责传数据
业务层只负责处理规则
数据库只负责保存数据
这就是架构的价值。
4. 你可以怎么做
以后每次开始项目前,先写下这四句话:
前端负责什么:
后端负责什么:
数据库保存什么:
文档说明什么:
这一步很简单,但能帮你把项目从一团想法变成清楚结构。
知识块 2:先记住一条最基础的项目路线
本块结论:单人项目先按“用户 -> 前端 -> API -> 业务处理 -> 数据库”这条线理解。
1. 这是什么
一个最基础的 Web 项目,可以先理解成下面这条路线:
用户
↓
前端页面
↓
统一 API
↓
业务处理
↓
数据库
每一层的意思是:
| 层级 | 白话解释 | 举例 |
|---|---|---|
| 用户 | 使用系统的人 | 学生、管理员 |
| 前端页面 | 用户看得见、点得到的地方 | 登录页、商品列表页 |
| API | 前端和后端沟通的入口 | /items, /users/login |
| 业务处理 | 系统规则 | 判断能不能发布商品 |
| 数据库 | 保存数据的地方 | 用户表、商品表 |
2. 为什么重要
你只要记住这条路线,就能开始判断问题出在哪里。
比如:
- 页面没显示数据,可能是前端没有正确请求接口
- 接口返回错误,可能是后端业务处理有问题
- 登录失败,可能是用户数据或密码校验有问题
- 商品发布后查不到,可能是数据库没有正确保存
新手最容易卡住的地方,不是不会写代码,而是不知道问题在哪一层。
这条路线就是帮你定位问题的。
3. 你可以怎么做
以后遇到问题,按这个顺序检查:
页面有没有触发操作?
接口有没有发出去?
后端有没有收到?
业务逻辑有没有通过?
数据库有没有保存?
前端有没有重新展示?
这个检查顺序比盲目改代码更稳。
知识块 3:用一个案例贯穿整篇文章
本块结论:项目架构最好不要空讲,要拿一个具体项目一直拆到底。
这篇文章我们用一个例子:校园二手交易平台第一版。
1. 第一版只做什么
第一版只做最核心的闭环:
| 功能 | 为什么要做 |
|---|---|
| 注册登录 | 用户要能进入系统 |
| 发布商品 | 平台要有内容来源 |
| 商品列表 | 用户要能浏览商品 |
| 商品详情 | 用户要能看清商品信息 |
| 搜索商品 | 用户要能找到想要的商品 |
| 管理员下架商品 | 平台要能处理违规内容 |
2. 第一版先不做什么
下面这些功能不是不好,而是不适合第一版就做:
| 暂不做 | 原因 |
|---|---|
| 即时聊天 | 实现成本高,还涉及实时通信 |
| 支付系统 | 涉及安全、订单、第三方支付 |
| 推荐算法 | 需要大量数据支撑 |
| 积分系统 | 容易增加额外规则 |
| 复杂权限 | 第一版容易被权限设计拖慢 |
3. 为什么要这样取舍
第一版的目标不是做大,而是先做成。
只要能完成“用户发布商品,其他用户能看到并搜索”的闭环,这个项目就已经有雏形了。
你可以先记住一句话:
项目第一版先跑通主流程,其他功能以后再加。
知识块 4:把项目拆成四个大块
本块结论:一个单人项目,先拆成前端、后端、数据库、文档四块就够了。
1. 四个大块分别做什么
| 部分 | 作用 | 新手理解 |
|---|---|---|
| 前端 | 页面和交互 | 用户看得见、点得到的地方 |
| 后端 | 接口和业务逻辑 | 负责处理规则,并把结果告诉前端 |
| 数据库 | 数据存储 | 长期保存用户、商品、收藏等信息 |
| 文档 | 说明和交付 | 让别人知道项目怎么运行、怎么使用 |
2. 为什么要这样拆
因为这四块正好覆盖了一个项目从使用到交付的全过程。
用户看到的是前端。
前端要数据,就找后端接口。
后端处理规则后,再去数据库读取或保存数据。
项目完成后,还要用文档告诉别人怎么启动、怎么访问、怎么演示。
3. 用校园二手交易平台举例
| 部分 | 具体内容 |
|---|---|
| 前端 | 登录页、首页、商品列表页、商品详情页、发布页 |
| 后端 | 登录接口、商品接口、搜索接口、下架接口 |
| 数据库 | 用户表、商品表、分类表、收藏表 |
| 文档 | 项目介绍、启动步骤、接口说明、部署说明 |
4. 你可以怎么做
先在纸上或文档里写:
前端页面:
后端接口:
数据库表:
项目文档:
把这四项填出来,项目结构就已经清楚了一大半。
知识块 5:模块怎么拆
本块结论:模块就是按功能把项目分组,每个模块只管自己的事情。
1. 什么是模块
模块可以理解成“功能分组”。
一个项目里,用户相关的东西放在用户模块,商品相关的东西放在商品模块,管理相关的东西放在管理模块。
这样做的好处是:
以后你想改商品功能,就去商品模块找,不会到处翻文件。
2. 校园二手交易平台可以这样拆
| 模块 | 负责什么 |
|---|---|
| 用户模块 | 注册、登录、个人信息 |
| 商品模块 | 发布、列表、详情、编辑、删除 |
| 分类模块 | 商品分类、分类筛选 |
| 收藏模块 | 收藏、取消收藏、收藏列表 |
| 管理模块 | 审核、下架、管理商品 |
3. 模块拆分的原则
你可以用三个问题判断模块是否合理:
- 这个模块负责的事情是不是清楚?
- 它和其他模块有没有混在一起?
- 以后改这个功能时,能不能快速找到对应位置?
如果答案都比较清楚,模块就拆得不错。
知识块 6:目录怎么设计
本块结论:目录不是越复杂越好,而是让你知道“什么文件该放哪里”。
1. 后端目录示例
如果你用 Spring Boot 或类似后端结构,可以先这样分:
backend/
controller/
service/
mapper/
entity/
config/
utils/
每个目录的作用:
| 目录 | 放什么 | 白话解释 |
|---|---|---|
controller |
接口入口 | 接收前端请求 |
service |
业务逻辑 | 处理具体规则 |
mapper |
数据访问 | 读写数据库 |
entity |
数据对象 | 表结构对应的对象 |
config |
配置 | 跨域、权限、系统配置 |
utils |
工具类 | 通用小功能 |
2. 前端目录示例
如果你用 Vue 或 React,可以先这样分:
frontend/
pages/
components/
api/
router/
utils/
每个目录的作用:
| 目录 | 放什么 | 白话解释 |
|---|---|---|
pages |
页面 | 登录页、列表页、详情页 |
components |
组件 | 按钮、卡片、搜索框 |
api |
请求方法 | 调用后端接口 |
router |
路由 | 页面跳转规则 |
utils |
工具方法 | 时间格式化、数据处理 |
3. 常见错误
很多新手会把所有代码都放在一个文件里。
短期看很快,长期看很痛苦。
比如一个商品列表页,不建议同时写这些内容:
页面展示
接口请求
复杂业务判断
数据格式处理
权限判断
更好的做法是:
- 页面放在
pages - 商品卡片放在
components - 请求商品列表的方法放在
api - 数据处理工具放在
utils
这样后面维护会轻很多。
知识块 7:接口怎么定
本块结论:接口先列清单,再写代码。接口就是前端向后端要数据或提交数据的入口。
1. 什么是接口
接口可以理解成前端和后端之间的“约定”。
前端说:我要商品列表。
后端说:你请求 /items,我就返回商品数据。
2. 商品模块接口示例
| 功能 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 商品列表 | GET | /items |
获取商品列表,支持分页和搜索 |
| 商品详情 | GET | /items/{id} |
查看单个商品 |
| 发布商品 | POST | /items |
新增商品 |
| 编辑商品 | PUT | /items/{id} |
修改商品 |
| 删除商品 | DELETE | /items/{id} |
删除商品 |
3. 用户模块接口示例
| 功能 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 注册 | POST | /users/register |
创建账号 |
| 登录 | POST | /users/login |
验证账号密码 |
| 获取个人信息 | GET | /users/me |
查看当前登录用户 |
4. 接口为什么要先定
因为接口一旦清楚,前后端就不会互相猜。
前端知道该请求哪个地址。
后端知道该返回哪些字段。
后面调试时,也能判断问题出在请求、逻辑还是数据上。
知识块 8:数据库怎么设计
本块结论:数据库不要先堆字段,要先找出核心对象和它们之间的关系。
1. 什么是核心对象
核心对象就是项目里最重要的“东西”。
在校园二手交易平台里,最重要的对象有:
- 用户
- 商品
- 分类
- 收藏
- 留言
这些对象通常就会变成数据表。
2. 基础数据表示例
| 表名 | 作用 | 关键字段示例 |
|---|---|---|
users |
存用户 | id, username, password_hash, role, created_at |
items |
存商品 | id, owner_id, category_id, title, price, description, status |
categories |
存分类 | id, name |
favorites |
存收藏 | id, user_id, item_id, created_at |
messages |
存留言 | id, item_id, sender_id, content, created_at |
3. 字段怎么理解
几个常见字段可以这样理解:
id:每条数据自己的编号owner_id:这条商品是谁发布的category_id:商品属于哪个分类status:商品当前状态,比如正常、下架、待审核created_at:创建时间
4. 设计数据库时的顺序
建议按这个顺序来:
先列对象
再列关系
再列字段
最后再优化字段类型
不要一开始就纠结字段够不够完美。
第一版先保证能支撑核心功能。
知识块 9:正确的搭建顺序
本块结论:不要先写代码。先定边界,再拆模块,再定目录、接口和数据表。
你可以按这个顺序来:
| 步骤 | 要做什么 | 输出结果 |
|---|---|---|
| 第一步 | 定项目边界 | 第一版做什么、不做什么 |
| 第二步 | 拆功能模块 | 用户、商品、分类、收藏、管理 |
| 第三步 | 定前后端目录 | frontend/ 和 backend/ 结构 |
| 第四步 | 列接口清单 | API 路径、方法、说明 |
| 第五步 | 设计数据表 | 用户表、商品表、分类表等 |
| 第六步 | 开始写代码 | 按模块逐步实现 |
为什么这个顺序更稳
因为代码只是最后的实现。
如果你前面没有想清楚,后面写得越多,改起来越痛。
先把结构想清楚,再写代码,会慢一点开始,但整体会更快完成。
知识块 10:AI 可以怎么帮你
本块结论:AI 适合帮你整理架构草图,但最后判断要由你来做。
1. 可以让 AI 帮你拆第一版架构
请帮我把“校园二手交易平台”拆成第一版架构,
输出前端模块、后端模块、数据库表、接口列表和目录结构,
要求适合大学生单人开发,不要太复杂。
2. 可以让 AI 帮你判断功能优先级
请根据下面的功能清单,帮我判断哪些功能适合放在第一版,
哪些功能应该延后,并说明原因。
3. 可以让 AI 帮你检查架构是否过重
下面是我的项目架构设计,请帮我检查是否适合单人开发,
指出哪些地方太复杂,哪些地方可以简化。
4. 使用 AI 时要注意
AI 给你的架构不一定都适合你。
你要自己判断:
- 这个架构是不是太重
- 第一版能不能做完
- 模块边界是不是清楚
- 目录是不是好理解
- 接口是不是够用
AI 能帮你更快,但不能替你决定删什么、留什么。
常见坑
本块结论:新手做项目最容易不是输在技术,而是输在范围太大、边界不清。
| 常见坑 | 表现 | 建议 |
|---|---|---|
| 一上来做太大 | 聊天、支付、推荐全想做 | 第一版只做主流程 |
| 目录太深 | 文件夹很多,但功能很少 | 目录够用就好 |
| 前后端边界不清 | 前端和后端都写同一套判断 | 接口先约定清楚 |
| 数据表字段太多 | 还没做功能,字段先堆几十个 | 先保证核心关系 |
| 没写文档 | 项目能跑,但别人不会用 | README 从第一天就写 |
今天就能开始的最小清单
本块结论:先完成这 8 件事,再正式写代码。
- 写清楚项目目标
- 写清楚第一版做什么
- 写清楚第一版不做什么
- 列出功能模块
- 画出前后端目录
- 列出接口清单
- 设计核心数据表
- 写 README 初稿
你可以直接照着填:
项目名称:
目标用户:
第一版目标:
第一版要做:
第一版不做:
前端页面:
后端接口:
数据库表:
项目目录:
README 内容:
把这些内容写出来,你的项目就不再只是一个模糊想法,而是一个可以开始执行的计划。
最后总结
一个人做项目,真正重要的不是一上来写多少代码,而是先把结构搭清楚。
你可以记住这句话:
先分块,再定边界;先定结构,再写代码。
只要你能把前端、后端、数据库、文档这几块讲清楚,再把模块、目录、接口和数据表列出来,一个项目就已经有了基本骨架。
后面再借助 AI 辅助写代码、查错误、补文档,效率会高很多。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)