教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 项目结构设置

项目结构设置

发布时间:2022-01-18   编辑:jiaochengji.com
教程集为您提供项目结构设置等资源,欢迎您收藏本站,我们将为您提供最新的项目结构设置资源
<h2>1.概述</h2>

实际项目业务功能和模块会很多,我们不可能把所有代码都写在一个go文件里面或者写在一个main入口函数里面;我们需要对项目结构做一些规划,方便维护代码以及扩展。

<blockquote>Gin框没有对项目结构做出限制,我们可以根据自己项目需要自行设计。</blockquote> <h2>2.项目结构</h2> <ul><li>有视图模板</li></ul><pre><code class="shell">├── conf #项目配置文件目录 │ └── config.toml #大家可以选择自己熟悉的配置文件管理工具包例如:toml、xml等等 ├── controllers #控制器目录,按模块存放控制器(或者叫控制器函数),必要的时候可以继续划分子目录。 │ └── user.go ├── models #模型目录,负责项目的数据存储部分,例如各个模块的Mysql表的读写模型。 │ ├── food.go │ └── user.go ├── static #静态资源目录,包括Js,css,jpg等等,可以通过Gin框架配置,直接让用户访问。 │ ├── css │ ├── images │ └── js ├── logs #日志文件目录,主要保存项目运行过程中产生的日志。 └── views #视图模板目录,存放各个模块的视图模板,当然有些项目只有api,是不需要视图部分,可以忽略这个目录 │ └── index.html ├── main.go #项目入口,这里负责Gin框架的初始化,注册路由信息,关联控制器函数等。</code></pre> <ul><li>api开发</li></ul><pre><code class="shell">├── conf #项目配置文件目录 │ └── config.toml #大家可以选择自己熟悉的配置文件管理工具包例如:toml、xml等等 ├── controllers #控制器目录,按模块存放控制器(或者叫控制器函数),必要的时候可以继续划分子目录。 │ └── user.go ├── models #模型目录,负责项目的数据存储部分,例如各个模块的Mysql表的读写模型。 │ ├── food.go │ ├── user.go │ └── init.go #模型初始化 ├── logs #日志文件目录,主要保存项目运行过程中产生的日志。 ├── main.go #项目入口,这里负责Gin框架的初始化,注册路由信息,关联控制器函数等。</code></pre>

以上两种目录结构基本上大同小异,一般的项目构建都可以使用这样的项目结构,清晰明了。

<h2>3.项目结构扩展</h2>

对于一般的项目都是使用上面的目录结构,但是有时候项目复杂了,会进一步拆分,把数据校验,模型定义,数据操作,服务,响应进行解耦。

<pre><code class="shell"> 数据校验->控制器->调用服务->数据操作->数据模型->数据响应 </code></pre>

目录结构如下:

<pre><code class="shell">├── conf #项目配置文件目录 │ └── config.toml #大家可以选择自己熟悉的配置文件管理工具包例如:toml、xml、ini等等 ├── requests #定义入参即入参校验规则 │ └── user_request.go │ └── food_request.go ├── responses #定义响应的数据 │ └── user_response.go │ └── food_response.go ├── services #服务定义目录 | └── v1 #服务v1版本 │ | └── user_service.go │ | └── food_service.go | └── v2 #服务v2版本 │ | └── user_service.go │ | └── food_service.go ├── api #api目录,按模块存放控制器(或者叫控制器函数),必要的时候可以继续划分子目录。 │ └── v1 #apiv1版本 │ | └── user.go │ | └── food.go │ └── v2 #apiv2版本 │ | └── user.go │ | └── food.go ├── router #路由目录 │ └── v1 #路由v1版本 │ | └── user.go │ | └── food.go │ └── v2 #路由v2版本 │ | └── user.go │ | └── food.go ├── init.go #路由初始化 ├── pkg #自定义的工具类等 │ └── e #项目统一的响应定义,如错误码,通用的错误信息,响应的结构体 │ └── util #工具类目录 ├── models #模型目录,负责项目的数据存储部分,例如各个模块的Mysql表的读写模型。 │ ├── food.go │ ├── user.go │ └── init.go #模型初始化 ├── repositories #数据操作层,定义各种数据操作。 │ └── user_repository.go │ └── food_repository.go ├── logs #日志文件目录,主要保存项目运行过程中产生的日志。 ├── main.go #项目入口,这里负责Gin框架的初始化,注册路由信息,关联控制器函数等。</code></pre>

通过上面的项目结构扩展,增加了代码量,但是把各层的职责界定了,每一层的只做每一层的事情,数据解耦

<blockquote>出处gin从入门到实践更多精彩文章,请关注我的博客SOCKSTACK,分享我的工作经验。</blockquote> 到此这篇关于“项目结构设置”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
04.Go项目布局-你如何设计项目结构
项目结构设置
浅析Django的dj-scaffold项目
基础配置篇:建立项目,为我的博客项目制定目录层次结构
go语言实战教程:项目文件配置和项目初始化运行
如何创建一个django项目
PHP中的安全模式是指的什么?
如何用python开发web
classpath详解(谨献给那些找不到北的朋友)
django和flask选哪个

[关闭]
~ ~