golang的map和struct转换库mapstruct
mapstructure 可用于将通用的map[string]interface{}解码到对应的 Go 结构体中,或者执行相反的操作。
github 地址: github.com/mitchellh/mapstructure
golang浮点数精度处理库decimal
decimal 对于浮点数的计算提供了极大的便利性,让我们在使用浮点数进行大小计算的时候不用担心精度丢失的问题,decimal库能处理小数点后 2^31 位数字,对于绝大多数的项目精度要求是足够的,简而言之,decimal 可以解决我们绝大多数的浮点数精度计算场景。
由于golang中默认是没有decimal类型的,所以要解决上述的问题,需要使用第三方库包decimal。
github 地址:https://github.com/shopspring/decimal
golang的gorm和ent库
Go微服务实战10-日志和链路追踪
Go微服务实战08-分布式缓存和分布式事务
Go微服务实战07-评论和历史记录系统设计
Go微服务实战05-工程化项目实践API设计和配置管理
1. 工程项目
1.1 项目结构
可以参考:https://github.com/golang-standards/project-layout/blob/master/README_zh.md
/cmd
本项目的主干,cmd应用目录负责程序的:启动、关闭、配置初始化等。每个应用程序的目录名应该与你想要的可执行文件的名称相匹配(例如,/cmd/myapp)。
不要在这个目录中放置太多代码。如果你认为代码可以导入并在其他项目中使用,那么它应该位于 /pkg 目录中。如果代码不是可重用的,或者你不希望其他人重用它,请将该代码放到 /internal 目录中。

