Files
easygoadmin-wiki/EasyGoAdmin_Gin_EleVue/zh/course.md
T
2026-10-25 17:24:27 +08:00

87 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 1.4 新手入门指南
:::tip 概述
本页给出一条从"跑起来"到"独立开发模块"的最短学习路径。按顺序完成各阶段后,你将具备在本项目上进行二次开发的全部基础能力。
:::
## 学习路线图
```text
┌──────────┐
│ 阶段一 │ 把项目跑起来(后端 + 前端 + 数据库)
└────┬─────┘
│
▼
┌──────────┐
│ 阶段二 │ 读懂一次请求的完整链路
└────┬─────┘
│
▼
┌──────────┐
│ 阶段三 │ 跟做 example 模块,走完四件套开发
└────┬─────┘
│
▼
┌──────────┐
│ 阶段四 │ 掌握代码生成器与前端联调
└────┬─────┘
│
▼
┌──────────┐
│ 阶段五 │ 按生产标准部署上线
└──────────┘
```
## 阶段一:把项目跑起来(约 30 分钟)
1. 准备环境:Go 1.27+、Node 18+(pnpm)、MySQL 8.0 —— 见 [2.1 开发环境准备](/zh/quickstart/environment.html)
2. 导入种子数据库脚本 —— 见 [2.2 数据库初始化](/zh/quickstart/database-init.html)
3. 按需调整 `config/config.yaml` —— 见 [2.3 配置文件与环境变量](/zh/quickstart/env-vars.html)
4. `make run` 启动后端(Windows 用 `make.bat run`),`pnpm dev` 启动前端
5. 登录后台,确认能看到菜单与仪表盘
## 阶段二:读懂请求链路(约 1 小时)
以一次登录或分页查询为例,跟踪请求从 Gin 入口经过中间件链、反射路由、handler、service 到 repository 的全过程:
- [4.2 请求处理链路](/zh/architecture/request-flow.html)
- [4.4 反射元数据驱动机制](/zh/architecture/bind-mechanism.html)
- [8.1 统一响应格式](/zh/api-spec/response.html)
建立"声明在哪里、逻辑在哪里、数据从哪进哪出"的全景认知。
## 阶段三:跟做 example 模块(约 2 小时)
项目内置 `gin_example` 示例模块,覆盖标准 CRUD 的全部典型场景。跟着 [第 3 章 模块开发实战](/zh/guide/overview.html) 从建表开始,依次完成:
```text
建表 → dto → repository → service → handler → RouteSpec 声明 → 权限配置 → 前端联调
```
完成后对照 [3.11 完整代码清单](/zh/guide/code-list.html) 核对自己的实现。
## 阶段四:代码生成器(约 1 小时)
手工走通流程后,用生成器把同样的模块自动生成一遍:
```bash
make gen TABLES="gin_example|示例表"
```
对比生成产物与手写代码的差异,理解模板体系 —— 见 [第 10 章 代码生成器](/zh/generator/overview.html)。随后阅读 [第 9 章 前端开发](/zh/frontend/overview.html) 掌握前端页面与 API 模块的编写规范。
## 阶段五:部署上线(约 1 小时)
按 [第 11 章 运维部署](/zh/deploy/checklist.html) 完成一次生产部署演练:环境规划 → 数据库初始化 → 后端构建 → 前端构建 → Nginx/Docker 装配 → 安全加固检查。
## 新手常见误区
| 误区 | 正确做法 |
|---|---|
| 在 service 里直接拿 `*gorm.DB` | 统一 `repository.NewXxxRepo().Ctx(ctx)` |
| 用物理删除清理数据 | 一切删除走软删除,特殊场景用 `WithPhysicalDelete(ctx)` 显式放行 |
| 在 handler 写业务逻辑 | handler 只做委托,逻辑进 service |
| 绕过 RouteSpec 手动注册路由 | 新接口一律在 RouteSpec 表加声明 |
| 富文本正文直接存 HTML | 正文内本站文件用 `[IMG_URL]` 占位符 |
| 新增配置键不更新 .env.example | 两者必须同步,`make check-config` 硬检查 |