前面好几篇文章介绍了deskvideosys办公行为管理软件的编译环境的搭建及在不同环境上的编译流程,这里开始解读下它的源码,先从源码目录结构开始吧,具体源码目录结构如下图所示:
从目录结构上能看到第一层的所有文件与目录,下面介绍下这些目录与文件的作用:
deskvideosys.db:deskvideosys 软件的数据存储文件,主要存储界面上配置界面保存后的配置信息
deskvideosys.ini: 这个是软件运行前需要配置的参数文件,里面要需要运行时一些目录文件与网络配置参数
logs:这个是日志文件,在软件运行后的日志都在这里,这个日志可以后续用来定位问题
main.go: 软件的主函数,main 函数就包含在这个文件中,
models:程序的模型文件,也可以理解为表结构配置文件,程序需要的表结构都在这里定义
node_modules:npm 编译时需要的库文件都在这里,
routers: 此目录放置的是golang的代码,所有的go语言代码都放置在这里,
web_src: vue 相关的代码都在这里,也就是说界面显示相关的代码都在这里实现
www: vue 编译后生成的文件都在这里,出版本包时,编译工具直接打包这里的文件到版本包
下面大家看一段主程序代码
func main() {
flag.StringVar(&utils.FlagVarConfFile, "config", "", "configure file path")
flag.Parse()
tail := flag.Args()
// log
log.SetPrefix("[DeskVideosys] ")
log.SetFlags(log.Lshortfile | log.LstdFlags)
log.Printf("git commit code:%s", gitCommitCode)
log.Printf("build date:%s", buildDateTime)
routers.BuildVersion = fmt.Sprintf("%s.%s", routers.BuildVersion, gitCommitCode)
routers.BuildDateTime = buildDateTime