一种简单的 Golang 项目目录结构划分
介绍
这个一个演示项目,目的是演示如何组织Go语言项目结构。
刚开始用Go语言开发项目的时候,大家应该都会有同样的困扰,如何组织功能模块的代码才能避免出现递归引用呢?甚至项目已经进行到一半了,随着功能交叉点的增多,才暴露出递归引用的问题。
其实问题的关键点在于合理的使用interface,下面我先介绍一下这个demo项目的结构。
这个demo项目假想成具有一定规模的服务端项目,其中包含一个以上的为不同目的开发的服务器程序,以及程序间公用的代码库。
这里用server1和server2代表两个服务器程序,比如游戏项目经常会有游戏服务端和游戏网关等多个进程。library目录下则是公共的代码。
library目录的结构这里就不需介绍了,各种开源的Go框架或Go语言自身提供的库就是典型的库结构,没有复杂的业务逻辑交叉,不是这个demo要演示的重点。
这里我们用server1来给大家做演示,ser