• 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的的各种逻辑组织,后端对应响应处理

  • 相关阅读:
    显示游标的属性
    显示游标的处理
    5:查询两表中的所有字段,满足性别为‘男’的记录(使用语句块)
    JS 进阶1
    JS 小练习
    驼峰法
    JS 入门四
    JS 入门三
    javascript中window.open()与window.location.href的区别(转)
    JavaScript 之日起对象(转)
  • 原文地址:https://www.cnblogs.com/yylingyao/p/11256715.html
Copyright © 2020-2023  润新知