Appearance
公共包 pkg
TIP
服务端没有
common / utils目录,这是 Go 社区共识,因为它容易成为全局依赖洼地,极易诱发循环依赖,或者变成代码垃圾抽屉;我们转而使用
internal/kit(成套工具)、internal/infra(基础设施),还有外层不依赖任何基础设施的pkg和pkg/util等粒度更细、更明确的包名代替。
pkg 区别于 kit,它不能依赖基础设施(如数据库、配置),始终保持其他项目复制过去就能用的独立性。
| 包名 | 作用 | 备注 |
|---|---|---|
airx | Air 扩展 | 挂起/恢复 Air 热重载进程,用于防止代码生成被打断 |
copierx | copier 扩展 | 放置所有 copier 自定义转换器 |
filesystem | 文件系统工具集 | CRUD 代码生成涉及很多文件相关操作,我们将其打包封装于此 |
jsonx | JSON 相关扩展 | 提供了一个泛型 JSON 解码函数,解析失败静默返回零值 |
random | 随机数生成 | 含随机数与随机颜色 |
structx | 结构体相关扩展 | 解析字段 json tag 的 key,结果带 sync.Map 缓存 |
timex | 时间相关扩展 | - |
tree | 树形数据处理 | 组装树状表格、树状 select 所需要的树状数据 |
util | 通用小工具 | 指针安全取值/判零;命名风格转换;字符串按 rune 截断(兼容中文等多字节字符) |
xss | XSS 清洗封装 | 基于 bluemonday 实现 |
