- 本项目含有多个子模块:tools下是与业务无关的基本模块;其他文件夹下是和业务相关在各项目之间通用的代码;
- leaf文件夹里面是对leaf框架的补充代码;
- 在对本项目进行设计的时候,请尽量不要添加太多和业务耦合较深的代码,如无必要勿增实体;
- 由于使用go mod,仅支持使用最新的golang版本进行构建(>=1.11);
- 必要的时候对具体模块进行再封装;
- 一般情况下,禁止对模块的导出接口进行删减改名,这会导致库不再向下兼容;
- 如果你能手动把其他使用该库的项目都改过来,也可以无视第6条;
- 如果不需要更新本项目代码,go mod到本地;
请将上文中的git地址替换成本地的git仓库,作为开发人员,请确保你有该项目的访问权限(只读权限即可)
3. 如果新建项目需要依赖本项目,请在go.mod
里面require github.com/Golangltd/nest latest
,然后使用go mod download
即可将其下载到本地;
4. 如果go.mod
中的依赖版本与本地不符合,可以使用go mod tidy
进行更新,其他go mod
命令请自行学习;
├── cache # 公用cache,包含rpc/闪告/金币锁
├── ginutils # gin的一些工具函数,供短链接API使用
├── heartbeat # 通用心跳模块
├── leaf # leaf的一些扩展函数,包括自定义的protobuf消息解析器
├── log # 通用的log封装
├── proto # 通用的protobuf消息
├── mg # mongo中数据统计相关的公用接口
├── tools
│ ├── collection # 集合类的扩展方法
│ ├── database # 快速初始化数据库连接
│ ├── deepcopy # 通用深拷贝(使用反射)
│ ├── fs # 文件系统/配置解析
│ ├── ip # ip地址库
│ ├── jsonutils # json工具库
│ ├── mem # 常用的内存缓存类
│ ├── num # 基础数字类型工具函数
│ ├── sample # 随机抽样函数
│ └── tz # 时间函数
└── user # 用户/流水相关公用接口