社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
一个典型的项目框架,文件夹目录如下,下面我们来逐一说明这些文件夹或文件的作用.
该目录主要存储控制器文件,特别地,我们做如下约定
1、 文件名称首字母一律大写,后面必须添加Controller结尾,用做标识这是控制器文件,如UserCtrl,我们就能一目了然地看到这是一个控制器文件
2、 我们约定控制器文件名必须和业务强相关,比如用户相关的控制器,我们需要设计文件名为UserCtrl.go,资源管理相关的控制器,我们需要设计名称为AttachCtrl
3、 文件名称一律区分大小写
该目录主要存储数据库对应模型文件,和java类似,我们做如下约定
1、 文件名称首字母一律大写,并与数据库内对应的表名称保持一致。
2、 数据库表名称中,以下划线开头的字母,对应的实体类中相应的字段必须大写.如user_info类,对应的实体名称必须为UserInfo.go
3、 文件名称一律区分大小写
视图目录主要包括如下子目录
1、 公共模板目录public,该目录下存放公共模板如用于统一设置head的head.html,用于统一设置底部的foot.html,用于统一错误页面的error.html
2、 应用模块目录,我们强烈建议每一个模块用一个目录来独立存放,该方式结构接单清晰明了.
3、 假设用户模块有注册,登录,密码找回,个人资料等四个逻辑页面,那么我们可以建立User模块,下辖登录页面login.html,注册页面 register.html,密码重置页面resetpwd.html,个人资料页面profile.html.
该目录主要用于存放静态资源,一般情况下,该目录下存放如下几个子目录
1、 image,用于存放静态图片文件
2、 css,用于存放css文件
3、 js,用于存放js文件.我们常页面的js逻辑文件也投放到该目录下,该目录可以建立子目录,和view下的子目录一一对应
4、 font,一般情况下,我们使用bootstrap框架时,会用到字体文件,那该文件夹用于存储字体文件
5、 plugin,该文件夹用于存放较大的插件,如kindedit插件,bootstarp,adminlte.等,在这里,我们将包含css和js或者image的文件包叫做插件
静态资源独立存放是有好处的,将来可以非常方别地实施动静态分离.
Service文件夹用于存放业务层逻辑,所谓业务层是指具体某一业务实现的方式,对外提供接口,对内调用数据库操作。业务层命名我们做如下约定
1、 所有业务逻辑名称首字母必须大写,且只能为字母。
2、 所有业务逻辑文件必须以Service结尾
打个比方,对于用户业务逻辑,我们定义文件名称UserService.go即可
我们将每一个业务的请求参数封装成一个struct,比如说,对于用户管理模块,我们可能用到根据关键字如姓名、电话等查询用户信息、根据注册时间查询用户信息的,以及分页支持、排序支持等。因此我们可以将这些参数封装成一个bean,比如本例子中我们可以作如下封装
type PageArg struct{
Kword string `form:”kword” json:”kword”`
Datefrom time.Time `form:”datefrom” json:”datefrom”`
Dateto time.Time `form:”dateto” json:”dateto”`
Desc string `form:”desc” json:”desc”`
Asc string `form:”asc” json:”asc”`
Pagefrom int `form:”pagefron” json:”pagefrom”`
Pagesize int `form:”pagesize” json:”pagesize”`
}
考虑到有些参数是常用的,我们可以将UserArg做如下定义
Type UserArg struct{
PageArg
//…… other arg
}
核心包内置我们的应用管理框架以及我们我们需要用到的括常用的工具类软件,具体描述如下
1、 orm封装工具OrmEngin.go
2、 常用自定义函数数FunMap.go
3、 参数响应结果封装Result.go
4、 验证码管理Captcha.go
5、 网络访问模块Http.go
6、 加密方法封装Crypto.go
7、 应用管理模块Restgo.go
其他需要扩张的用户可以自行添加
配置存放目录在config下,具体内容如下
1、 日志配置文件log4g.xml
2、 应用配置文件application. Properties
其他配置文件可以自行添加
应用启动文件main.go位于跟目录下
本文源代码源代码获取地址 https://github.com/winlion/restgo
10.2 天天任务清单小程序
https://github.com/winlion/dailytask
10.3 工业大数据采集
10.4 restgo cms
10.5 restgo 千人大群
作者简介:胡文林,持续创业者,长期从事技术开源工作。微信号jiepool-winlion
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!