Migeking 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
..
cmd 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
config 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
docs 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
internal 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
pkg 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
scripts 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
web 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
Dockerfile 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
README.md 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
docker-compose.yml 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred
go.mod 83b8af0d73 添加Go语言学习项目文档和物联网基站学习专案 1 mesiac pred

README.md

Go Web开发特训项目

项目概述

这是一个基于Go语言的Web开发特训项目,包含从基础到高级的Web开发技术栈,通过实际项目练习掌握现代Web应用开发技能。

项目结构

web-training/
├── README.md                 # 项目说明
├── go.mod                    # 依赖管理
├── go.sum                    # 依赖锁定
├── config/                   # 配置文件
│   ├── config.yaml          # 应用配置
│   └── config.go            # 配置加载
├── cmd/                      # 应用入口
│   ├── server/              # Web服务器
│   │   └── main.go
│   └── admin/               # 后台管理
│       └── main.go
├── internal/                 # 内部包
│   ├── config/              # 配置管理
│   ├── handler/             # HTTP处理器
│   │   ├── user.go
│   │   ├── product.go
│   │   ├── order.go
│   │   └── upload.go
│   ├── middleware/          # 中间件
│   │   ├── auth.go
│   │   ├── cors.go
│   │   ├── logger.go
│   │   └── ratelimit.go
│   ├── model/               # 数据模型
│   │   ├── user.go
│   │   ├── product.go
│   │   ├── order.go
│   │   └── cart.go
│   ├── repository/          # 数据访问层
│   │   ├── user.go
│   │   ├── product.go
│   │   └── order.go
│   ├── service/             # 业务逻辑层
│   │   ├── user.go
│   │   ├── product.go
│   │   ├── order.go
│   │   └── auth.go
│   └── utils/               # 工具函数
│       ├── response.go
│       ├── validation.go
│       └── pagination.go
├── pkg/                      # 公共包
│   ├── auth/                # 认证模块
│   │   ├── jwt.go
│   │   └── password.go
│   ├── cache/               # 缓存模块
│   │   └── redis.go
│   ├── database/            # 数据库模块
│   │   └── mysql.go
│   ├── storage/             # 存储模块
│   │   └── local.go
│   └── websocket/           # WebSocket模块
│       └── hub.go
├── web/                      # 前端资源
│   ├── static/              # 静态文件
│   │   ├── css/
│   │   ├── js/
│   │   └── images/
│   └── templates/           # 模板文件
│       ├── index.html
│       ├── login.html
│       └── dashboard.html
├── uploads/                  # 上传文件目录
├── scripts/                  # 脚本文件
│   ├── build.sh
│   └── deploy.sh
├── docs/                     # 文档
│   ├── api.md               # API文档
│   └── deployment.md        # 部署文档
├── tests/                    # 测试文件
│   ├── integration/
│   └── unit/
└── docker-compose.yml        # Docker配置

技术栈

后端技术

  • Web框架: Gin
  • 数据库: MySQL
  • ORM: GORM
  • 缓存: Redis
  • 认证: JWT
  • 配置管理: Viper
  • 日志: Zap
  • WebSocket: Gorilla WebSocket

开发工具

  • 测试: Go test + Testify
  • 文档: Swagger
  • 部署: Docker
  • 监控: Prometheus + Grafana

快速开始

1. 环境准备

# 安装Go 1.19+
# 安装MySQL 8.0+
# 安装Redis 6.0+

2. 克隆项目

git clone <repository-url>
cd web-training

3. 安装依赖

go mod download

4. 配置数据库

# 创建数据库
mysql -u root -p
CREATE DATABASE web_training;

# 导入初始数据
mysql -u root -p web_training < scripts/init.sql

5. 启动服务

# 启动Web服务器
go run cmd/server/main.go

# 或使用Docker
docker-compose up -d

6. 访问应用

学习路径

第一阶段:基础Web开发 (1-2周)

  • Gin框架基础
  • 路由与中间件
  • 数据绑定与验证
  • 模板渲染

第二阶段:前后端分离 (2-3周)

  • RESTful API设计
  • JWT认证
  • CORS处理
  • 统一响应格式

第三阶段:高级特性 (2-3周)

  • WebSocket实时通信
  • 文件上传处理
  • 缓存策略
  • 性能优化

第四阶段:项目实战 (3-4周)

  • 电商平台开发
  • 用户管理系统
  • 商品管理
  • 订单处理

API接口

用户管理

  • POST /api/v1/register - 用户注册
  • POST /api/v1/login - 用户登录
  • GET /api/v1/users - 获取用户列表
  • GET /api/v1/users/:id - 获取用户详情
  • PUT /api/v1/users/:id - 更新用户信息
  • DELETE /api/v1/users/:id - 删除用户

商品管理

  • GET /api/v1/products - 获取商品列表
  • POST /api/v1/products - 创建商品
  • GET /api/v1/products/:id - 获取商品详情
  • PUT /api/v1/products/:id - 更新商品
  • DELETE /api/v1/products/:id - 删除商品

订单管理

  • GET /api/v1/orders - 获取订单列表
  • POST /api/v1/orders - 创建订单
  • GET /api/v1/orders/:id - 获取订单详情
  • PUT /api/v1/orders/:id - 更新订单状态

测试

运行单元测试

go test ./...

运行集成测试

go test -tags=integration ./tests/integration/...

生成测试覆盖率报告

go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out

部署

Docker部署

# 构建镜像
docker build -t web-training .

# 运行容器
docker run -p 8080:8080 web-training

使用Docker Compose

docker-compose up -d

贡献指南

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

联系方式

如有问题或建议,请提交 Issue 或联系项目维护者

祝您学习愉快!