这个代码说实话 撸的还算可以。。我看这个代码的目的是参考下正常项目的golang应该怎么弄。因为我们主业务还是用的C++,golang方面我就是新手,一个线上项目怎么合理划分设计代码,看书或者是看小JB开源代码是学不到的,而线上开源的golang项目,除了高大上的各种框架组件之外,剩下的要么是玩具,要么就是工具了。。玩真的项目还是比较少开源到线上(可能是我没找到),经各种网友推荐,感觉这个比较不错,所以决定好好学习下。
下面是正文
------------------------------------------------分割线--------------------------------------------------------
从cmd下的 main函数开始可以看到 整个程序被包装成了 cli工具..
以下是几个用到的lib库
cli用的是这个 "github.com/urfave/cli"
db用的是 "github.com/jinzhu/gorm"
后台模式用的lib:"github.com/sevlyar/go-daemon"
这个大家都知道是啥 "github.com/gin-gonic/gin"
这个lib不错。不同的命令参数从不同的函数执行.
start命令 对应的执行流程如下:
startAction->new config ->创建对应各种文件夹 ->连接db 导入更新models 设置成后台进程模式 开启个gin 设置上路由。。 等到退出事件就行了 等等
这里有点意思的是 gin的路由分组。。另外各个路由api的代码直接都是找api目录下的文件中 各自文件实现各自接口。。设计的很清晰
对于这些api 在客户端都是有着对应的路由请求。代码清晰易懂。。设计的不错
其它命令类似。剩下的就是前端请求api的的各种逻辑组织,后端对应响应处理