Skip to content

公共包 pkg

TIP

  1. 服务端没有 common / utils 目录,这是 Go 社区共识,因为它容易成为全局依赖洼地,极易诱发循环依赖,或者变成代码垃圾抽屉;

  2. 我们转而使用 internal/kit(成套工具)、internal/infra(基础设施),还有外层不依赖任何基础设施的 pkgpkg/util 等粒度更细、更明确的包名代替。

pkg 区别于 kit,它不能依赖基础设施(如数据库、配置),始终保持其他项目复制过去就能用的独立性

包名作用备注
airxAir 扩展挂起/恢复 Air 热重载进程,用于防止代码生成被打断
copierxcopier 扩展放置所有 copier 自定义转换器
filesystem文件系统工具集CRUD 代码生成涉及很多文件相关操作,我们将其打包封装于此
jsonxJSON 相关扩展提供了一个泛型 JSON 解码函数,解析失败静默返回零值
random随机数生成含随机数与随机颜色
structx结构体相关扩展解析字段 json tag 的 key,结果带 sync.Map 缓存
timex时间相关扩展-
tree树形数据处理组装树状表格、树状 select 所需要的树状数据
util通用小工具指针安全取值/判零;命名风格转换;字符串按 rune 截断(兼容中文等多字节字符)
xssXSS 清洗封装基于 bluemonday 实现