photoprism 源码阅读

这个代码说实话 撸的还算可以。。我看这个代码的目的是参考下正常项目的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的的各种逻辑组织,后端对应响应处理

posted @ 2019-07-27 21:03  掉头发的666  阅读(794)  评论(0编辑  收藏  举报