refactor(go)!: 分离练习区与独立项目区

- 将现有练习及 module 文件迁移至 go/practice,保持代码和依赖不变
- 新增 go/projects 项目区说明,更新目录约定与开发命令

BREAKING CHANGE: Go 练习命令需改在 go/practice 目录下执行
This commit is contained in:
2026-10-15 22:26:57 +08:00
parent 86f6eb39b2
commit d375463de5
21 changed files with 91 additions and 33 deletions
+10 -20
View File
@@ -1,24 +1,14 @@
# Go 练习区
# Go
本目录是 Go 的学习 / 练手代码,共用一个 module(`go.mod` 在本目录)。
本目录按用途分两个区,`go/` 本身不是 module:
## 约定
- **每个叶子目录 = 一个独立小程序**:`package main` + `main.go`。
- 多个小程序并存互不冲突(不同目录、各自的 `main`)。
- 某个程序依赖太特殊时,可在它自己的目录单独 `go mod init`,脱离本 module。
## 主题目录
| 目录 | 放什么 |
| 目录 | 定位 |
|---|---|
| `basics/` | 语法基础、内置类型(slice / map / chan 行为等) |
| `concurrency/` | 并发:goroutine / channel / select / context |
| `stdlib/` | 标准库练习(net/http、encoding/json、io…) |
| `patterns/` | 设计模式 |
| `algorithms/` | 数据结构与算法 |
| `web/` | net/http、Gin 等框架 |
| `testing/` | 练习 Go 测试机制(`*_test.go`、`go test`、table-driven、testify) |
| `project/` | 完整小项目(多文件) |
| [`practice/`](practice/README.md) | 练习区:共用一个 module(`go.mod` 在 `practice/` 内),语法 / 算法 / 测试等日常练手代码 |
| [`projects/`](projects/README.md) | 项目区:每个子目录是独立 module 的完整小应用,自带 `go.mod`、自行管理依赖 |
> 主题目录可随时增删。写新程序时挑最贴的主题,在里面建一个新子目录放 `main.go` 即可。
## 边界
- 写小段代码验证语言行为、练语法和标准库 → 放 `practice/` 对应主题目录。
- 程序长成完整应用,或依赖需要独立于练习区管理 → 在 `projects/` 下新建目录,单独 `go mod init`。
- 两个区互不包含:`practice/` 的 module 不覆盖 `projects/`,每个 projects 项目也是独立 module。