Skip to content

Commit a463beb

Browse files
author
maxcook
committed
add exercises file
1 parent 7bac079 commit a463beb

26 files changed

+4972
-30
lines changed

.idea/.gitignore

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/go-web-api-study.iml

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 143 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,48 +17,161 @@
1717

1818
---
1919

20+
## 🚀 快速开始
21+
22+
### 启动学习环境
23+
24+
```bash
25+
# 克隆项目
26+
git clone https://github.com/lookteas/go-web-api-study.git
27+
cd go-web-api-study
28+
29+
# 启动Web学习服务器
30+
go run cmd/api/main.go
31+
# 或者构建后运行
32+
go build -o server.exe cmd/api/main.go
33+
./server.exe
34+
```
35+
36+
### 访问学习界面
37+
38+
启动服务器后,访问以下地址:
39+
40+
- **🏠 主页**: http://localhost:8080
41+
- **📝 每日练习**: http://localhost:8080/exercises
42+
- **🔧 基础模块**: http://localhost:8080/gobase
43+
- **💚 健康检查**: http://localhost:8080/health
44+
45+
---
46+
2047
## 📚 学习内容概览
2148

22-
| 主题 | 内容 |
23-
|------|------|
24-
| ✅ 基础语法回顾 | 变量、函数、结构体、接口、并发等 |
25-
| ✅ HTTP 服务开发 | 使用 `net/http` 构建基础 Web 服务 |
26-
|路由控制 | 使用 `gorilla/mux``gin` 实现路由 |
27-
|RESTful API 设计 | 请求处理、JSON 序列化、状态码规范 |
28-
|中间件开发 | 日志、认证、CORS、限流等 |
29-
|数据库操作 | 使用 `database/sql``GORM` 操作 PostgreSQL/MySQL |
30-
| ✅ 用户认证 | JWT、Session、OAuth2 基础实现 |
31-
| ✅ 配置管理 | 使用 `Viper` 管理配置文件 |
32-
| ✅ 错误处理 | 统一错误响应结构 |
33-
| ✅ 接口测试 | 使用 `testing` 包进行单元测试与集成测试 |
34-
| ✅ 项目结构设计 | 推荐的 Go 项目分层结构(如 api, service, model, handler) |
35-
| ✅ 部署实践 | Docker 打包、简单部署流程 |
49+
| 主题 | 内容 | 状态 |
50+
|------|------|------|
51+
| ✅ 基础语法回顾 | 变量、函数、结构体、接口、并发等 | 已完成 |
52+
| ✅ HTTP 服务开发 | 使用 `net/http` 构建基础 Web 服务 | 已完成 |
53+
|RESTful API 设计 | 请求处理、JSON 序列化、状态码规范 | 已完成 |
54+
|数据库操作 | SQL操作、连接池、事务、ORM基础 | 已完成 |
55+
|高级特性 | 并发模式、反射、泛型、性能优化、设计模式 | 已完成 |
56+
|中间件开发 | 日志、认证、CORS、限流等 | 已完成 |
57+
| ✅ 用户认证 | JWT、Session、OAuth2 基础实现 | 已完成 |
58+
| ✅ 配置管理 | 使用 `Viper` 管理配置文件 | 已完成 |
59+
| ✅ 错误处理 | 统一错误响应结构 | 已完成 |
60+
| ✅ 接口测试 | 使用 `testing` 包进行单元测试与集成测试 | 已完成 |
61+
| ✅ 项目结构设计 | 推荐的 Go 项目分层结构 | 已完成 |
62+
| ✅ 部署实践 | Docker 打包、简单部署流程 | 已完成 |
3663

3764
---
3865

39-
## 📁 项目结构示例(建议)
66+
## 📁 项目结构
4067

4168
```bash
4269
.
4370
├── cmd/ # 主程序入口
4471
│ └── api/
45-
│ └── main.go
72+
│ └── main.go # Web服务器主程序
73+
├── docs/ # 文档目录
74+
│ └── learning_plan.md # 学习计划文档
75+
├── exercises/ # 每日练习目录
76+
│ ├── README.md # 6周练习计划
77+
│ ├── day01/ # 第1天练习
78+
│ │ └── hello_world.go
79+
│ ├── day02/ # 第2天练习
80+
│ │ └── hello_world.go
81+
│ └── day03/ # 第3天练习
82+
│ └── ......
83+
├── gobase/ # Go基础学习模块
84+
│ ├── README.md # 模块说明
85+
│ ├── 01_variables_and_types.go # 变量和类型
86+
│ ├── 02_functions.go # 函数
87+
│ ├── 03_structs_and_interfaces.go # 结构体和接口
88+
│ ├── 04_concurrency.go # 并发编程
89+
│ ├── 05_http_basics.go # HTTP基础
90+
│ ├── 06_api_development.go # API开发
91+
│ ├── 07_database_basics.go # 数据库操作
92+
│ └── 08_advanced_features.go # 高级特性
4693
├── internal/ # 内部逻辑代码
4794
│ ├── handler/ # HTTP 请求处理器
48-
│ ├── service/ # 业务逻辑
49-
│ ├── model/ # 数据结构与数据库模型
95+
│ │ └── handler.go
5096
│ ├── middleware/ # 自定义中间件
51-
│ └── config/ # 配置加载
52-
├── pkg/ # 可复用工具包
53-
├── config/ # 配置文件(如 config.yaml)
54-
├── api/ # OpenAPI/Swagger 文档(可选)
55-
├── scripts/ # 脚本(如数据库迁移)
56-
├── tests/ # 测试代码
57-
├── go.mod
58-
├── go.sum
59-
└── README.md
97+
│ │ ├── cors.go
98+
│ │ └── logger.go
99+
│ ├── model/ # 数据结构与数据库模型
100+
│ │ └── user.go
101+
│ └── service/ # 业务逻辑
102+
│ └── user_service.go
103+
├── go.mod # Go模块文件
104+
├── server.exe # 编译后的可执行文件
105+
└── README.md # 项目说明文档
106+
```
60107

108+
---
61109

62-
# 克隆项目
63-
git clone https://github.com/你的用户名/go-web-api-study.git
64-
cd go-web-api-study
110+
## 🎯 学习路径
111+
112+
### 第一阶段:基础语法 (gobase模块)
113+
1. **变量和类型** - 掌握Go的基本数据类型和变量声明
114+
2. **函数** - 学习函数定义、参数传递、闭包等
115+
3. **结构体和接口** - 理解Go的面向对象编程
116+
4. **并发编程** - 掌握goroutine和channel
117+
118+
### 第二阶段:Web开发 (gobase模块)
119+
5. **HTTP基础** - 学习HTTP服务器开发
120+
6. **API开发** - 构建RESTful API
121+
7. **数据库操作** - 数据持久化和ORM
122+
8. **高级特性** - 性能优化和设计模式
123+
124+
### 第三阶段:实践练习 (exercises目录)
125+
- **6周练习计划** - 每日一练,循序渐进
126+
- **项目实战** - 结合所学知识构建完整项目
127+
128+
---
129+
130+
## 🔧 功能特性
131+
132+
### Web学习界面
133+
- 📱 响应式设计,支持多设备访问
134+
- 🎨 美观的UI界面,提升学习体验
135+
- 📝 源代码在线查看,支持语法高亮
136+
- 🔗 便捷的导航链接,快速跳转
137+
138+
### 学习模块
139+
- 📚 **8个基础模块** - 从入门到进阶的完整知识体系
140+
- 💡 **丰富的代码示例** - 每个概念都有实际代码演示
141+
- 📖 **详细的注释说明** - 帮助理解每行代码的作用
142+
- 🛠️ **实用工具函数** - 可直接在项目中使用
143+
144+
### 练习系统
145+
- 📅 **6周学习计划** - 科学安排学习进度
146+
- 🎯 **循序渐进** - 从简单到复杂,逐步提升
147+
- 💻 **命令行运行** - 支持直接运行练习代码
148+
- 🌐 **Web端查看** - 在浏览器中查看源代码
149+
150+
---
151+
152+
## 🤝 贡献指南
153+
154+
欢迎提交 Issue 和 Pull Request 来完善这个学习项目!
155+
156+
### 贡献方式
157+
1. Fork 本仓库
158+
2. 创建你的特性分支 (`git checkout -b feature/AmazingFeature`)
159+
3. 提交你的修改 (`git commit -m 'Add some AmazingFeature'`)
160+
4. 推送到分支 (`git push origin feature/AmazingFeature`)
161+
5. 打开一个 Pull Request
162+
163+
---
164+
165+
## 📄 许可证
166+
167+
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
168+
169+
---
170+
171+
## 🙏 致谢
172+
173+
感谢所有为Go语言生态系统做出贡献的开发者们!
174+
175+
---
176+
177+
**Happy Coding! 🚀**

0 commit comments

Comments
 (0)