
怎么做好一个项目
很多同学学到一半会迷茫。
学 Java 的时候觉得自己只会写语法,
学数据库的时候觉得只是会写 SQL,
学前端的时候觉得只是会画页面,
学 Spring 的时候又觉得只是会写接口。
然后很多人就会开始怀疑:
我现在学的这些东西,真的能串成一条线吗?
我真的能用这些东西做出自己想做的项目吗?
其实是可以的。
只是你现在还没有把这些知识点放到一个完整项目里面去理解,所以它们看起来是散的。
我这里以我自己的学习方向为例,用一个最简单的 学生管理系统 来讲一下,一个项目是怎么从最基础的东西,一步一步变完整、变高级的。
一、为什么很多人会觉得项目很难?
很多人刚开始学项目的时候,其实不是不努力,而是不知道自己现在学的东西到底能干什么。
学 Java 基础的时候,觉得自己只会写循环、数组、集合。
学数据库的时候,觉得自己只会写增删改查。
学前端的时候,觉得自己只会写几个页面。
学 Spring 的时候,觉得自己只是会写几个接口。
学 Vue 的时候,觉得自己只是会套组件。
学 Docker 的时候,觉得自己只是会启动几个容器。
学微服务的时候,又觉得这些东西太复杂,离自己很远。
但你要明白一件事:
技术学习本来就是一层一层叠起来的。
你现在学的东西,不是孤立存在的。
它们最后一定会在项目里汇合。
一个真正完整的项目,不是一开始就做出来的,而是从一个很小的版本开始,不断升级出来的。
所以我这里用 学生管理系统 举例。
因为这个项目够简单,大家都能理解,但它又可以不断扩展。
从最基础的控制台版本,到数据库版本,到前后端分离,到后台管理系统,到云端部署,到微服务,再到 AI 智能系统。
同一个项目,其实可以陪你走完整条学习路线。
第一阶段:Java 基础语法阶段
1. 你学了什么?
这个阶段,你主要学的是 Java 最基础的内容。
比如:
- 变量
- 数据类型
- if 判断
- for 循环
- while 循环
- 数组
- 方法
- 类和对象
- 封装
- 继承
- 多态
- 集合
- 简单文件读写
这个时候,很多人会觉得自己学的东西很基础,好像没什么用。
其实不是没用。
只是你现在还没有把它们组合起来。
2. 这个阶段能做出的成品
这个阶段可以做出一个:
控制台版学生管理系统
它没有网页,没有数据库,也没有复杂界面。
运行起来就是一个黑窗口,通过菜单输入数字来操作。
比如:
====== 学生管理系统 ======
1. 添加学生
2. 删除学生
3. 修改学生
4. 查询学生
5. 查看全部学生
0. 退出系统
请输入你的选择:
这个项目看起来很简单,但它已经是一个完整小项目了。
3. 这个阶段的功能
这个版本可以实现:
- 添加学生信息
- 删除学生信息
- 修改学生信息
- 查询单个学生
- 查看全部学生
- 判断学生是否存在
- 判断学号是否重复
- 判断输入是否合法
- 使用集合临时保存数据
- 使用循环菜单持续操作
学生信息可以包括:
- 学号
- 姓名
- 年龄
- 性别
- 班级
- 专业
4. 这个阶段的成品效果
比如你运行程序后,可以看到:
====== 学生管理系统 ======
1. 添加学生
2. 删除学生
3. 修改学生
4. 查询学生
5. 查看全部学生
0. 退出系统
请输入你的选择:1
请输入学生学号:20240001
请输入学生姓名:张三
请输入学生年龄:18
请输入学生性别:男
请输入学生班级:计科2401
请输入学生专业:计算机科学与技术
添加学生成功!
查询学生时:
请输入要查询的学生学号:20240001
查询结果如下:
学号:20240001
姓名:张三
年龄:18
性别:男
班级:计科2401
专业:计算机科学与技术
查看全部学生时:
当前学生列表:
学号 姓名 年龄 性别 班级 专业
20240001 张三 18 男 计科2401 计算机科学与技术
20240002 李四 19 男 计科2402 计算机科学与技术
5. 这个阶段能锻炼什么?
这个阶段主要锻炼的是你的基础编程能力。
你会开始理解:
- 一个学生对象应该怎么设计;
- 数据应该怎么保存;
- 添加、删除、修改、查询分别怎么写;
- 菜单怎么循环;
- 输入错误怎么处理;
- 代码怎么拆成不同方法;
- 怎么把语法变成功能。
这个阶段不要嫌项目简单。
因为你要先明白一件事:
项目不是一开始就高级的,项目是从最简单的功能慢慢堆起来的。
控制台学生管理系统虽然简单,但它能让你第一次体会到:
原来我学的 Java 基础语法,真的可以做出一个能运行的小项目。
第二阶段:数据结构与数据库阶段
1. 你学了什么?
当你学完 Java 基础之后,下一步一般会接触数据结构和数据库。
这个阶段你会学习:
- 数据结构基础
- MySQL 数据库
- SQL 语句
- 表结构设计
- 主键
- 外键
- 索引
- 增删改查
- 条件查询
- 模糊查询
- 排序
- 分页
- JDBC 或简单数据库连接
这个阶段非常重要。
因为你会从“程序运行时保存数据”,进入到“数据永久保存”的阶段。
2. 这个阶段能做出的成品
这个阶段可以做出一个:
数据库版学生管理系统
第一阶段的数据是存在集合里的。
程序一关,数据就没了。
第二阶段的数据可以存进 MySQL 数据库里。
即使程序关闭,数据依然存在。
这就是一个很大的进步。
3. 这个阶段的功能
这个版本可以实现:
- 学生信息保存到数据库
- 从数据库查询学生信息
- 修改数据库中的学生信息
- 删除数据库中的学生信息
- 按学号精确查询
- 按姓名模糊查询
- 按班级筛选
- 按专业筛选
- 按创建时间排序
- 分页查询学生列表
- 防止学号重复
- 简单数据校验
4. 数据库表设计示例
比如可以设计一张学生表:
CREATE TABLE student (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
student_no VARCHAR(32) NOT NULL UNIQUE COMMENT '学号',
name VARCHAR(50) NOT NULL COMMENT '姓名',
gender VARCHAR(10) COMMENT '性别',
age INT COMMENT '年龄',
major VARCHAR(100) COMMENT '专业',
class_name VARCHAR(100) COMMENT '班级',
phone VARCHAR(20) COMMENT '手机号',
create_time DATETIME COMMENT '创建时间',
update_time DATETIME COMMENT '更新时间'
);
这个时候你就会发现,做项目不只是写 Java 代码,还要考虑数据应该怎么设计。
5. 这个阶段的成品效果
添加学生时:
请输入学生姓名:张三
请输入学生学号:20240001
请输入专业:计算机科学与技术
请输入班级:计科2401
添加成功,数据已保存到数据库。
查询学生时:
正在从数据库查询学生信息...
查询结果:
学号:20240001
姓名:张三
专业:计算机科学与技术
班级:计科2401
创建时间:2026-04-27 10:30:00
你也可以直接在数据库中看到这条记录。
6. 这个阶段能锻炼什么?
这个阶段主要锻炼你的数据思维。
你会开始思考:
- 学生表应该有哪些字段;
- 学号能不能重复;
- 哪些字段必须填写;
- 查询条件多了怎么办;
- 删除是真删除还是假删除;
- 数据库字段和 Java 对象怎么对应;
- SQL 写错了怎么排查;
- 为什么要分页;
- 为什么要给学号加唯一约束。
这个阶段你要明白:
数据库不是单独的一门课,它是项目真正落地的基础。
以后你做任何项目,都离不开数据设计。
比如实验室管理系统,会有用户表、实验室表、申请表、审核表、考勤表。
商城系统,会有用户表、商品表、订单表、支付表。
博客系统,会有用户表、文章表、评论表、分类表。
所以第二阶段的重点,不是单纯学 SQL,而是学会用数据库承载一个项目的数据。
第三阶段:前端三件套 + Spring 基础阶段
1. 你学了什么?
这个阶段,你开始学习前后端交互相关的内容。
比如:
- HTML
- CSS
- JavaScript
- Ajax
- Axios
- JSON
- HTTP 请求
- Spring 基础
- Controller
- Service
- Mapper / Dao
- 简单接口开发
这个阶段,你会第一次真正接触到:
前端页面和后端接口是怎么连接起来的。
2. 这个阶段能做出的成品
这个阶段可以做出一个:
前后端交互版学生管理系统
它已经不再是黑窗口了。
它有网页,有按钮,有表格,有输入框,有后端接口,也有数据库。
这个时候,你的项目已经开始像一个真正的系统了。
3. 这个阶段的前端功能
前端页面可以包括:
- 登录页面
- 学生列表页面
- 添加学生表单
- 修改学生表单
- 搜索框
- 删除按钮
- 分页按钮
- 简单提示消息
页面上可以展示:
学生列表
------------------------------------------------
学号 姓名 专业 班级 操作
20240001 张三 计算机科学 计科2401 编辑 删除
20240002 李四 软件工程 软工2401 编辑 删除
------------------------------------------------
[新增学生] [搜索学生]
4. 这个阶段的后端接口
后端可以提供这些接口:
GET /student/list 查询学生列表
GET /student/detail 查询学生详情
POST /student/add 添加学生
PUT /student/update 修改学生
DELETE /student/delete 删除学生
前端通过接口请求后端,后端再去操作数据库。
5. 这个阶段的完整流程
比如查询学生列表:
用户打开学生列表页面
↓
前端发送请求 GET /student/list
↓
后端 Controller 接收请求
↓
Service 处理业务逻辑
↓
Mapper 查询数据库
↓
数据库返回学生数据
↓
后端把数据转成 JSON
↓
前端拿到 JSON 后渲染表格
比如添加学生:
用户填写学生表单
↓
点击提交
↓
前端发送 POST /student/add
↓
后端接收参数
↓
校验学号是否重复
↓
保存到数据库
↓
返回添加成功
↓
前端刷新学生列表
6. 这个阶段能锻炼什么?
这个阶段非常关键。
因为它会让你真正理解:
前端不是单纯写页面,后端也不是单纯写 Java。
前端和后端是通过接口连接起来的。
你会学到:
- 什么是请求;
- 什么是响应;
- 什么是接口;
- 什么是 JSON;
- 什么是请求参数;
- 什么是返回结果;
- 什么是状态码;
- 什么是跨域;
- 什么是前后端分离;
- 什么是接口文档。
很多人觉得自己学的东西很散,就是因为没有真正做过前后端交互项目。
只要你把这个阶段走通一次,很多知识点就会突然连起来。
第四阶段:Spring Boot + Vue + Element UI 阶段
1. 你学了什么?
这个阶段,你会继续学习更完整的项目开发技术。
比如:
- Spring Boot
- Spring MVC
- MyBatis
- MyBatis-Plus
- Vue
- Vue Router
- Element UI / Element Plus
- Axios 封装
- 组件化开发
- 后台管理系统布局
- 表单校验
- 权限基础设计
- Token 登录认证
这个阶段是很多人第一次真正做出“像样项目”的阶段。
2. 这个阶段能做出的成品
这个阶段可以做出一个:
后台管理系统版学生管理平台
它不再只是一个学生列表,而是一个完整的后台系统。
有登录页,有首页,有侧边栏,有数据看板,有多个管理模块,有权限控制,有分页查询,有弹窗表单,有数据统计。
这个时候,你的项目已经可以放进简历里了。
3. 主要模块设计
3.1 登录与用户模块
可以实现:
- 管理员登录
- 用户退出
- 修改密码
- 登录状态校验
- Token 认证
- 用户信息展示
- 不同角色进入不同页面
3.2 首页数据看板
可以展示:
- 学生总数
- 班级总数
- 专业总数
- 今日新增学生
- 男女人数比例
- 各专业人数统计
- 各班级人数统计
- 最近操作记录
首页可以大概长这样:
首页数据看板
[学生总数:520] [班级总数:12] [专业总数:4] [今日新增:8]
专业人数统计:
计算机科学与技术:220
软件工程:180
大数据:80
人工智能:40
最近操作:
- 管理员添加了学生张三
- 管理员修改了李四的班级
- 管理员删除了王五的信息
3.3 学生管理模块
可以实现:
- 学生列表
- 新增学生
- 编辑学生
- 删除学生
- 批量删除
- 按姓名搜索
- 按学号搜索
- 按班级筛选
- 按专业筛选
- 分页查询
- 导入学生
- 导出学生
3.4 班级管理模块
可以实现:
- 新增班级
- 修改班级
- 删除班级
- 查看班级学生
- 统计班级人数
- 绑定所属专业
3.5 专业管理模块
可以实现:
- 新增专业
- 修改专业
- 删除专业
- 查看专业下的班级
- 查看专业下的学生数量
3.6 权限管理模块
可以实现:
- 管理员账号管理
- 普通用户账号管理
- 角色分配
- 菜单权限控制
- 按角色显示不同功能
- 普通用户只能查看数据
- 管理员可以增删改查
3.7 操作日志模块
可以记录:
- 谁添加了学生
- 谁修改了学生
- 谁删除了学生
- 什么时间操作的
- 操作结果是什么
- 操作 IP 是什么
4. 后端项目结构
后端可以分成:
controller 接收请求
service 处理业务逻辑
mapper 操作数据库
entity 数据库实体
dto 接收前端参数
vo 返回前端数据
config 配置类
common 通用返回结果
utils 工具类
这个时候,你会开始真正理解项目分层。
5. 前端项目结构
前端可以分成:
api 接口请求
views 页面
components 组件
router 路由
store 状态管理
utils 工具函数
layout 后台布局
这个阶段你会理解组件化开发。
比如:
- 学生表格可以做成组件;
- 搜索栏可以做成组件;
- 分页可以做成组件;
- 弹窗表单可以做成组件;
- 顶部导航和侧边栏也可以复用。
6. 这个阶段能锻炼什么?
这个阶段主要锻炼的是完整项目开发能力。
你会开始理解:
- 后端为什么要分层;
- 前端为什么要组件化;
- 接口为什么要统一返回格式;
- 为什么要封装 Axios;
- 为什么要做权限控制;
- 为什么要做表单校验;
- 为什么要做分页;
- 为什么要做日志记录;
- 为什么要区分 DTO 和 VO。
这个阶段你要明白:
项目不是功能堆起来就行,而是要有结构。
代码结构清晰,后面才能继续扩展。
代码写得乱,项目越大越容易崩。
第五阶段:Redis + Docker + 云端部署阶段
1. 你学了什么?
这个阶段,你开始学习项目上线和运行相关的内容。
比如:
- Redis
- 缓存设计
- Docker
- Docker Compose
- Linux 基础命令
- Nginx
- 云服务器
- 项目打包
- 前端部署
- 后端部署
- 域名解析
- HTTPS 配置
- 日志查看
- 服务器排错
这个阶段,你的项目会从“本地能跑”升级到“线上能访问”。
2. 这个阶段能做出的成品
这个阶段可以做出一个:
线上部署版学生管理平台
也就是说,你的项目不只是你电脑上能打开。
别人也可以通过公网链接访问。
这一步非常重要。
因为本地能跑,只能说明你会开发。
能部署上线,才说明你知道一个项目是怎么真正运行起来的。
3. Redis 可以做什么?
在学生管理系统里,Redis 可以用来做:
- 用户登录状态缓存
- Token 缓存
- 验证码缓存
- 首页统计数据缓存
- 专业列表缓存
- 班级列表缓存
- 热点查询缓存
- 防止重复提交
- 简单限流
比如首页统计数据不用每次都从数据库重新算,可以先放进 Redis。
用户访问首页的时候,系统先查 Redis,如果 Redis 有数据,就直接返回;如果没有,再查数据库。
这样系统访问速度会更快。
4. Docker 可以做什么?
Docker 可以帮你把环境统一起来。
比如你可以用 Docker 启动:
- MySQL
- Redis
- Nginx
- 后端服务
- 文件服务
你可以写一个 docker-compose.yml,让项目需要的环境一键启动。
比如:
docker compose up -d
这样比你手动安装 MySQL、Redis、Nginx 要方便很多。
5. 云端部署后的功能效果
部署上线之后,项目可以实现:
- 公网访问登录页
- 线上操作学生数据
- 数据保存在服务器数据库中
- 前端由 Nginx 托管
- 后端以 jar 包或 Docker 容器运行
- Redis 提供缓存能力
- Nginx 反向代理后端接口
- 绑定域名访问
- 配置 HTTPS 证书
访问流程大概是:
用户访问域名
↓
Nginx 返回前端页面
↓
前端请求 /api/student/list
↓
Nginx 反向代理到后端服务
↓
后端查询 Redis / MySQL
↓
返回数据给前端
↓
前端渲染页面
6. 这个阶段能锻炼什么?
这个阶段主要锻炼的是项目部署和运维能力。
你会学会:
- 后端怎么打 jar 包;
- 前端怎么打包;
- 服务器怎么开放端口;
- Nginx 怎么配置;
- Docker 容器怎么启动;
- Redis 怎么连接;
- MySQL 数据怎么初始化;
- 域名怎么解析;
- HTTPS 怎么配置;
- 线上日志怎么查看;
- 项目启动失败怎么排查。
很多人只会写本地项目,但不会部署。
而你只要把部署走通一次,能力就会明显比别人完整。
第六阶段:微服务组件阶段
1. 你学了什么?
这个阶段,你开始学习微服务体系。
比如:
- Spring Cloud Alibaba
- Nacos
- Gateway
- OpenFeign
- Sentinel
- Seata
- RabbitMQ / RocketMQ
- 分布式事务
- 服务注册与发现
- 配置中心
- 网关路由
- 服务调用
- 限流熔断
- 异步消息
这个阶段,你开始接触企业级系统架构。
2. 这个阶段能做出的成品
这个阶段不建议你还只叫它“学生管理系统”了。
它可以升级成:
微服务版校园管理平台
因为它已经不只是管理学生,而是可以扩展成一个更大的校园业务系统。
3. 服务拆分示例
可以拆成这些服务:
3.1 用户服务 user-service
负责:
- 用户注册
- 用户登录
- Token 校验
- 用户信息管理
- 角色管理
- 权限管理
3.2 学生服务 student-service
负责:
- 学生档案
- 学生信息增删改查
- 学生状态管理
- 学生数据统计
3.3 班级服务 class-service
负责:
- 班级信息
- 班级成员
- 班级统计
- 班主任关联
3.4 文件服务 file-service
负责:
- 头像上传
- Excel 导入
- Excel 导出
- 文件存储
- 图片访问
3.5 消息服务 message-service
负责:
- 系统通知
- 审核通知
- 操作提醒
- 邮件通知
- 站内信
3.6 统计服务 statistics-service
负责:
- 首页数据看板
- 学生人数统计
- 专业人数统计
- 班级人数统计
- 趋势分析
3.7 审核服务 review-service
负责:
- 学生信息修改审核
- 用户注册审核
- 数据变更审核
- 管理员操作审核
4. 微服务组件怎么用?
Nacos
用于服务注册和配置管理。
每个服务启动后都会注册到 Nacos。
网关和其他服务可以通过服务名找到它。
Gateway
作为统一入口。
所有请求先进入网关,再由网关转发到不同服务。
例如:
/api/user/** -> user-service
/api/student/** -> student-service
/api/file/** -> file-service
/api/message/** -> message-service
OpenFeign
用于服务之间调用。
比如学生服务需要查用户信息,就可以通过 Feign 调用用户服务。
Sentinel
用于限流和熔断。
如果某个接口访问量太高,Sentinel 可以保护系统不被打崩。
Seata
用于处理分布式事务。
比如删除学生时,需要同时删除学生档案、权限关系、消息记录,就可能涉及多个服务的数据一致性。
RabbitMQ / RocketMQ
用于异步处理。
比如:
- 新增学生后发送通知;
- 导入学生后异步处理 Excel;
- 审核完成后推送站内信;
- 数据统计异步刷新。
5. 这个阶段能锻炼什么?
这个阶段你会理解:
为什么大项目不能永远写在一个后端里。
你会开始思考:
- 服务怎么拆;
- 服务之间怎么调用;
- 配置怎么统一;
- 请求怎么走网关;
- 服务挂了怎么办;
- 高并发接口怎么保护;
- 多个服务的数据怎么保持一致;
- 消息通知怎么异步化;
- 日志和链路追踪怎么做。
这已经是企业级项目设计思维了。
第七阶段:LangChain + LangGraph 阶段
1. 你学了什么?
这个阶段,你开始学习 AI 应用开发。
比如:
- LangChain
- LangGraph
- Prompt 设计
- RAG 检索增强生成
- 向量数据库
- Agent
- 工具调用
- 多步骤工作流
- 大模型接口调用
- AI 与业务系统结合
这个阶段,你开始把传统项目升级成智能系统。
2. 这个阶段能做出的成品
这个阶段可以做出:
AI 智能校园管理平台
它不是简单地在系统里加一个聊天框,而是让 AI 真正参与业务流程。
3. 主要功能
3.1 AI 学生信息问答
老师可以直接问:
帮我查一下计科2401班有哪些学生。
AI 自动理解问题,然后调用系统接口查询学生数据,并返回结果。
3.2 AI 学习情况分析
老师可以问:
帮我分析一下最近成绩下降比较明显的学生。
系统可以结合成绩、考勤、作业等数据,生成分析结果。
3.3 AI 自动生成学生评价
系统可以根据学生信息生成评价:
该学生学习态度较认真,近期出勤稳定,但在数据库课程中成绩波动较大,建议加强 SQL 查询和表设计练习。
3.4 AI 自动生成通知
管理员可以输入:
通知计科2401班明天下午三点开会。
AI 可以自动生成正式通知内容,并推送给对应班级学生。
3.5 AI 辅助审核
当学生修改重要信息时,AI 可以辅助判断:
- 修改原因是否合理;
- 材料是否完整;
- 是否存在异常信息;
- 是否需要人工重点关注。
3.6 AI 数据总结报告
系统可以自动生成:
- 班级月度报告
- 学生学习趋势报告
- 专业人数统计报告
- 管理员工作总结
- 异常学生预警报告
3.7 LangGraph 多步骤工作流
比如老师输入:
帮我找出本月请假次数较多,并且成绩下降的学生,然后生成一份提醒通知。
LangGraph 可以把任务拆成多个步骤:
理解问题
↓
查询请假数据
↓
查询成绩数据
↓
筛选异常学生
↓
生成分析结论
↓
生成提醒通知
↓
返回给老师确认
这就不再是普通问答,而是一个 AI 工作流。
4. 这个阶段能锻炼什么?
这个阶段你会理解:
AI 不是单独做一个聊天机器人,而是要和真实业务结合。
你会开始思考:
- AI 怎么读取系统数据;
- AI 怎么调用后端接口;
- AI 怎么判断用户意图;
- AI 怎么执行多步骤任务;
- AI 输出内容怎么保证可靠;
- AI 怎么和权限系统结合;
- AI 生成的结果要不要人工确认;
- AI 如何帮助系统提升效率,而不是单纯炫技。
最终总结:同一个项目,可以陪你走完整条路线
你看,从一个最简单的学生管理系统开始,它其实可以不断升级。
| 阶段 | 成品 | 重点 |
|---|---|---|
| 第一阶段 | 控制台版学生管理系统 | 用 Java 基础语法和集合完成增删改查 |
| 第二阶段 | 数据库版学生管理系统 | 用 MySQL 保存真实数据,理解表设计 |
| 第三阶段 | 前后端交互版学生管理系统 | 理解接口、JSON、前后端分离 |
| 第四阶段 | 后台管理系统版学生管理平台 | Vue + Element UI + Spring Boot 做完整后台 |
| 第五阶段 | 线上部署版学生管理平台 | Redis + Docker + Nginx + 云服务器部署 |
| 第六阶段 | 微服务版校园管理平台 | Nacos、Gateway、Feign、Sentinel、MQ 等组件协作 |
| 第七阶段 | AI 智能校园管理平台 | LangChain、LangGraph、大模型、RAG、Agent 结合业务 |
给现在还迷茫的同学
不要总觉得自己现在学的东西没用。
你现在学 Java 基础,是为了能写业务逻辑。
你现在学数据库,是为了能保存真实数据。
你现在学前端,是为了能把系统展示出来。
你现在学 Spring,是为了能做接口和后端服务。
你现在学 Vue,是为了能做完整后台页面。
你现在学 Redis,是为了让系统更快。
你现在学 Docker,是为了让项目更好部署。
你现在学微服务,是为了理解大系统怎么设计。
你现在学 AI 框架,是为了让系统变得更智能。
这些东西不是散的。
它们本来就是一条线。
只是你需要一个项目,把它们串起来。
所以,不要一开始就想着做多高级的项目。
先做一个最简单的学生管理系统,把它跑起来。
然后慢慢升级。
第一版很丑没关系。
功能很少没关系。
代码写得乱也没关系。
项目跑不起来也很正常。
真正重要的是你开始做了。
很多东西不是想明白的,而是做明白的。
先完成,再优化。
先跑起来,再谈架构。
先做出第一版,再一点点变强。
这就是学习项目开发最现实、也最有效的路线。