Home - zhoudm1743/go-util GitHub Wiki

Go-Util Wiki

欢迎来到 Go-Util 的完整文档中心!这里提供了详尽的使用指南、最佳实践和高级功能说明。

🎯 核心价值

Go-Util 是一个现代化的 Go 工具库,专注于:

  • 🛡️ 类型安全: 利用 Go 1.18+ 泛型特性
  • ⚡ 高性能: 零拷贝、O(1)查找、并发优化
  • 📦 零依赖: 核心包无第三方依赖
  • 🔗 链式API: 流畅的编程体验
  • 🏢 企业级: 生产环境验证

📖 快速导航

🚀 入门指南

📦 核心包文档

🎯 独立包深度指南

🛠️ 高级主题

🤝 开发者资源

🌟 特色功能预览

🚀 JSONx - 极速JSON操作

// 200层深度嵌套,毫秒级完成
j := jsonx.Object().
    Set("user.profile.settings.theme.color", "dark").
    Set("user.permissions.admin.level", 5)

// 5000个对象,0.01秒处理
users := jsonx.Array()
for i := 0; i < 5000; i++ {
    users.Append(jsonx.Object().Set("id", i))
}

🔐 JWT - 企业级认证

// 10万次/秒 HMAC 性能
token := jwt.NewBuilder(jwt.SigningMethodHS256, secret).
    SetSubject("user123").
    SetExpirationFromNow(24 * time.Hour).
    Build()

// 支持所有主流算法
algorithms := []jwt.SigningMethod{
    jwt.SigningMethodHS256, jwt.SigningMethodRS256,
    jwt.SigningMethodHS384, jwt.SigningMethodRS384,
    jwt.SigningMethodHS512, jwt.SigningMethodRS512,
}

🔢 XEnum - 类型安全枚举

// 100万次/秒查找性能
UserStatus := util.NewEnumBuilder[int]().
    Add(1, "ACTIVE", "已激活").
    Add(2, "SUSPENDED", "已暂停").
    Build()

// GORM 无缝集成
type User struct {
    Status *util.XEnum[int] `gorm:"type:int"`
}

📊 性能基准

功能 性能指标 对比优势
JSONx深度访问 200层嵌套 比标准库快50%
JWT HMAC验证 10万次/秒 企业级性能
XEnum查找 100万次/秒 O(1)复杂度
XArray过滤 10万元素45ms 并发优化
XStr处理 微秒级响应 零分配优化

🎯 使用场景

🌐 Web API 开发
// JWT认证 + JSON处理 + 枚举验证
func UserAPI(c *gin.Context) {
    // JWT验证
    token := jwt.ParseFromRequest(c.Request)
    
    // JSON处理
    body := jsonx.Parse(c.Request.Body)
    status := body.Get("status").Int()
    
    // 枚举验证
    if !UserStatus.IsValid(status) {
        c.JSON(400, gin.H{"error": "invalid status"})
        return
    }
    
    // 业务逻辑...
}
🗄️ 数据库操作
// XEnum + GORM 完美集成
type Order struct {
    ID     uint                  `gorm:"primaryKey"`
    Status *util.XEnum[string]  `gorm:"type:varchar(20)"`
    Data   json.RawMessage      `gorm:"type:json"`
}

// 直接查询枚举
activeStatus, _ := OrderStatus.FromName("ACTIVE")
db.Where("status = ?", activeStatus.Value()).Find(&orders)
📊 数据处理
// 函数式编程 + 性能优化
results := util.Arrays(rawData).
    Filter(func(item Data) bool { return item.IsValid() }).
    Map(func(item Data) ProcessedData { return item.Process() }).
    GroupBy(func(item ProcessedData) string { return item.Category }).
    ToMap()
🔧 配置管理
// JSON配置 + 枚举验证 + 类型安全
config := jsonx.Parse(configFile)
logLevel := config.Get("logging.level").String()

if level, ok := LogLevel.FromName(logLevel); ok {
    logger.SetLevel(level.Value())
}

📚 学习路径

🔰 初学者

  1. 快速开始 - 基础用法
  2. 常见问题 - 常见坑点
  3. 基础概念 - 设计理念

🎯 进阶用户

  1. JSONx完整指南 - JSON高级操作
  2. XEnum完整指南 - 枚举系统
  3. 性能优化指南 - 性能调优

🏢 企业用户

  1. JWT完整指南 - 认证方案
  2. 企业级应用 - 生产部署
  3. 安全指南 - 安全实践

🔥 热门文档

文档 描述 热度
JSONx完整指南 零依赖JSON操作,200层嵌套支持 🔥🔥🔥🔥🔥
性能优化指南 各组件性能调优技巧 🔥🔥🔥🔥
JWT完整指南 企业级JWT解决方案 🔥🔥🔥🔥
常见问题 问题排查和解决方案 🔥🔥🔥

🆕 最新更新

  • v1.4.0 - 新增JSONx包,支持200层嵌套深度
  • v1.3.0 - JWT包重构,通用API设计
  • v1.2.0 - XEnum性能优化,FastLookup支持
  • v1.1.0 - 核心包性能提升,零分配优化

💬 获取帮助

🔍 自助解决

  1. 搜索FAQ - 90%问题已收录
  2. 查看示例 - 实际代码示例
  3. 性能调优 - 优化建议

🤝 社区支持

📖 相关资源


⭐ 如果 Go-Util 对您有帮助,请给我们一个 Star!

🚀 开始使用 | 📚 完整文档 | 💬 加入社区

让 Go 开发更简单、更高效、更安全

⚠️ **GitHub.com Fallback** ⚠️