教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 04.Go项目布局-你如何设计项目结构

04.Go项目布局-你如何设计项目结构

发布时间:2022-03-04   编辑:jiaochengji.com
教程集为您提供04.Go项目布局-你如何设计项目结构等资源,欢迎您收藏本站,我们将为您提供最新的04.Go项目布局-你如何设计项目结构资源
<h1>本文视频地址</h1><h3>Go 语言典型项目结构</h3>

在多年的 Go 语言实践积累后逐渐形成了一种典型项目结构,如下图所示:

<span class="img-wrap"></span>
上面就是一个支持构建二进制可执行文件(在 src 下)的典型 Go 项目的结构。

<ul><li>1 src 目录:存放项目要编译构建的可执行文件对应的 main 包的源文件。如果有多个可执行文件需要构建,每个可执行文件的 main 包单独放在一个子目录中,比如图中的 appA、appB;src 目录下的各 app 的 main 包将整个项目的依赖连接在一起。我们在 main 包中会做一些命令行参数解析、资源初始化、日志设施初始化、数据库连接初始化等工作,然后会将程序的执行权交给更高级的执行对象。</li><li>2 pkg 目录:存放项目自身要使用、同样也是可执行文件对应 main 包所要依赖的库文件;还可以被外部项目引用。</li><li>3 Makefile:这里的 Makefile 是项目构建工具所用的脚本。Go 并没有内置如 make等级别的项目构建工具,对于规模较大的项目而言,工具是不可缺少的。在 Go 典型项目中,项目构建工具的脚本一般放在项目顶层目录下,如上面的 Makefile;如果脚本较多的项目,也可以建立 build 目录。</li><li>4 go.mod 和 go.sum:Go 语言包依赖管理使用的配置文件。Go 1.11 版本引入 go modules 机制,因此新项目建议基于 go modules 进行包依赖管理。</li></ul>

5 vendor 目录(可选):vendor 是 Go 1.5 版本引入的用于在项目本地缓存特定版本依赖包的机制,在 go modules 机制引入前,go modules 本身就可以实现构建,而无需 vendor,因此这里将 vendor 目录是一个可选目录。

<h3>Go 语言典型项目结构(构建库类型)</h3>

Go 1.4 发布时,Go 语言项目自身去掉了 src 下的 pkg 这一层目录,这个结构上的改变对那些只编译为库的 Go 语言库类型项目结构有着一定的影响。我们来看一个典型的 Go 语言库类型项目的结构布局:
<span class="img-wrap"></span>
我们看到库类型项目相比于构建二进制可执行文件的项目要简单一些:

<ul><li>去除了 src 和 pkg 两个子目录;</li><li>库项目仅通过 go.mod(或其他包依赖管理工具的 manifest 文件)明确表述出该项目依赖的模块或包以及版本要求即可。</li></ul>

<span class="img-wrap"></span>


到此这篇关于“04.Go项目布局-你如何设计项目结构”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
04.Go项目布局-你如何设计项目结构
go html提取纯文本_Go 语言高性能编程
php程序员30岁后能干啥?
Go 开发关键技术指南 | 为什么你要选择 Go?(内含超全知识大图)
基于GitLab CI搭建Golang自动构建环境
golang 多个项目时如何配置(使用gb在非GOPATH路径下构建项目)
想系统学习GO语言(Golang
基础配置篇:建立项目,为我的博客项目制定目录层次结构
持续集成与持续部署宝典Part 1:将构建环境容器化
浅析Django的dj-scaffold项目

[关闭]
~ ~