教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 基础配置篇:建立项目,为我的博客项目制定目录层次结构

基础配置篇:建立项目,为我的博客项目制定目录层次结构

发布时间:2021-12-30   编辑:jiaochengji.com
教程集为您提供基础配置篇:建立项目,为我的博客项目制定目录层次结构等资源,欢迎您收藏本站,我们将为您提供最新的基础配置篇:建立项目,为我的博客项目制定目录层次结构资源

前期准备、构思已经相对比较完善了,我们在构思章节中,已经明确了我们的需求,知道我们的博客他需要有些什么功能,博客的数据库设计、博客的界面设计等信息。也大致了解到了golang的安装配置、基本语法等。

这一节内容中,我们将开始进行我们最重要的一步,开始实战学习golang了。

<h2>目录结构</h2>

一个清晰明确的目录结构,可以让项目更清晰,更好维护和扩展。目录结构的组织,也是可以灵活变动的。它本身没有一个严格规定的格式。我们只需要做到合适、合理、清晰就可以。下面是我对博客程序设计的目录结构的设计。目录都采用一级目录形式放置,目录名称采用对应功能的英文来命名。

<pre><code class="bash">├── main 入口文件目录 ├── cache 缓存目录 ├── config 配置文件处理目录 ├── controller 控制器目录 ├── library 一些功能函数存放目录 ├── middleware 中间件存放目录 ├── model 数据库模型文件存放的目录 ├── provider 控制器和数据库交互读写的中间层处理函数目录 ├── public 对外公开的目录 ├── request 前端页面提交的数据模型定义目录 ├── route 路由器存放目录 └── template 页面模板文件目录</code></pre>

创建完成后的目录结构大概是这样:
<span class="img-wrap"></span>

<ul><li><code>根目录</code>就是用来放置上面这些文件夹的目录,包括项目配置文件等。</li><li><code>main</code>目录是博客网站项目入口目录,将main.go放置在这个位置,编译的时候,也是通过这个目录编译。</li><li><code>cache</code>目录是博客网站项目的缓存目录,生成的文件缓存,都会放置在这里</li><li><code>config</code>目录是博客网站项目的配置文件处理目录,里面放配置的初始化和读写等函数</li><li><code>controller</code>目录是博客网站项目的控制器目录,所有的控制器都放置在这里</li><li><code>library</code>目录是博客网站项目的一些功能函数存放目录</li><li><code>middleware</code>目录是博客网站项目的中间件存放目录</li><li><code>model</code>博客网站项目的数据库模型文件存放的目录</li><li><code>provider</code>目录是博客网站项目控制器和数据库交互读写的中间层处理函数存放目录</li><li><code>public</code>目录是博客网站项目对外公开的目录,放置一些静态文件可供直接浏览,如js、css、images等</li><li><code>request</code>目录是博客网站项目前端页面提交的数据模型定义目录,规定了前端提交的数据字段和数据格式</li><li><code>route</code>目录是博客网站项目的路由器存放目录,定义了博客有哪些路径是暴露出来提供访问的</li><li><code>template</code>目录是博客网站项目的页面模板文件目录,每一个控制器对应一个文件夹和文件</li></ul><h2>项目初始化</h2>

上面我们已经创建好目录了,接着,我们就开始使用golang的包管理命令来初始化我们的项目。现在新版的golang,使用<code>go mod</code> 命令来初始化项目和管理依赖。

避坑说明:如果你的安装的golang版本低于1.13,那么请先升级到1.13,以方便后续的操作。更高版本有更多的特性支持。如果你将项目创建在了pkg目录,那么使用go mod命令管理默认是会出错的,我们需要执行一条命令解决这个冲突,让他允许这么操作

<pre><code class="bash">go env -w GO111MODULE=on</code></pre>

还有众所周知的原因,我们并不能直接访问到golang官网,导致一些官方包无法正常下载,我们还需要再执行一个命令,来设置代理地址。

<pre><code class="bash">go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct</code></pre>

有了这2步的前提操作,下面就可以放心大胆的使用了。

<h3>初始化项目</h3><pre><code class="bash">go mod init irisweb</code></pre>

<code>go mod init 项目名称</code> 就可以初始化一个指定项目名称的golang项目。比如这里我们这里将项目命名为irisweb。
<span class="img-wrap"></span>

<h3>载模块包到本地cache</h3>

目前所有模块版本数据均缓存在 $GOPATH/pkg/mod和 ​$GOPATH/pkg/sum 下。不过一般上这个命令可以不用,直接使用go mod tidy 也是可以的。

<pre><code class="bash">go mod download</code></pre><h3>删除错误或者不使用的模块包,更新下载未下载的模块包</h3>

这个命令可以将多余的包删除掉,并且会自动下载新添加的包

<pre><code class="bash">go mod tidy</code></pre><h3>生成vendor目录</h3>

包下载下来了,还需要生成到vendor目录,才能正确的引入和编译,否则是会报错的。

<pre><code class="bash">go mod vendor</code></pre><h3>其他包管理命令</h3><pre><code class="bash"># 编辑go.mod文件 选项有-json、-require和-exclude,可以使用帮助go help mod edit go mod edit # 以文本模式打印模块需求图 go mod graph # 验证依赖是否正确 go mod verify # 查找依赖 go mod why # 更新到最新版本 go get gorm.io/gorm@version # 清理moudle 缓存 go clean -modcache # 替代不能正常下载的库 go mod edit -replace=golang.org/x/sys@v0.0.0=github.com/golang/sys@latest # 查看可下载版本 go list -m -versions gorm.io/gorm</code></pre>

完整的项目示例代码托管在GitHub上,需要查看完整的项目代码可以到github.com/fesiong/goblog 上查看,也可以直接fork一份来在上面做修改。

到此这篇关于“基础配置篇:建立项目,为我的博客项目制定目录层次结构”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
基础配置篇:建立项目,为我的博客项目制定目录层次结构
项目结构设置
04.Go项目布局-你如何设计项目结构
第一个Django项目 part1:请求与响应
如何设计一个成功的网站
如何将Laravel项目搬迁到服务器上
总结.NET三层架构中逻辑分层架构
基于JQuery的6个Tab选项卡插件
golang 接口开发入门01- 从0开始构建项目
云原生环境下微服务管理系统开发

[关闭]
~ ~