Compare commits

..

1 Commits
v1.0.0 ... main

Author SHA1 Message Date
AI Engineer
f7b7402911 AI: 更新文档索引至 v1.0.3 2026-04-24 16:58:32 +08:00
2 changed files with 15 additions and 11 deletions

18
AI.md
View File

@ -9,15 +9,19 @@
3. **无错误处理倾向**:理解 `IdMaker` 采用防御性设计,不会产生 Panic 或 Error调用时无需错误检查。 3. **无错误处理倾向**:理解 `IdMaker` 采用防御性设计,不会产生 Panic 或 Error调用时无需错误检查。
4. **按需指定长度**:调用时明确传入 `size`根据业务对并发吞吐量的需求8-11位后续长度随机填充进行决策。 4. **按需指定长度**:调用时明确传入 `size`根据业务对并发吞吐量的需求8-11位后续长度随机填充进行决策。
## 🛠 关键 API 逻辑约定 ## 🛠 API Reference
| 函数 | 场景 | 核心特征 | ### 核心生成器
| :--- | :--- | :--- | - `func NewIdMaker(incr func(sec uint64) uint64) *IdMaker`:创建自定义步长的 ID 生成器。
| `MakeId/Get` | 通用生成 | 全局默认实例生成。 | - `var DefaultIdMaker`:默认全局 ID 生成器(单机模式)。
| `GetForMysql` | MySQL PK | 自动右旋散列,解决 B+ 树写入热点。 |
| `GetForPostgreSQL`| PostgreSQL PK| 具备时间局部单调性,无右旋散列。 |
## 快速开始 ### 格式化生成 (推荐作为 PK)
- `func MakeId(size int) string`默认实例生成随机唯一ID。
- `func (im *IdMaker) Get(size int) string`生成随机唯一ID。
- `func (im *IdMaker) GetForMysql(size int) string`MySQL 优化版,自动右旋散列,解决写入热点。
- `func (im *IdMaker) GetForPostgreSQL(size int) string`PostgreSQL 优化版,保持时间单调。
## 🧩 典型模式 (Best Practices)
* **✅ 示例**: * **✅ 示例**:
```go ```go

4
go.mod
View File

@ -3,6 +3,6 @@ module apigo.cc/go/id
go 1.25.0 go 1.25.0
require ( require (
apigo.cc/go/encoding v1.0.0 apigo.cc/go/encoding v1.0.3
apigo.cc/go/rand v1.0.2 apigo.cc/go/rand v1.0.3
) )