Skip to main content

准备工作

本文开始记录开始时间为2023-09,如果官方文档有更新导致本文中链接失效或与官方文档不相同的地方或错漏,以官方文档为准

前置条件

已安装Go语言开发环境,已配置好GOROOT、GOPATH环境变量

熟悉Go语言基本语法与使用

GoFrame文档:https://goframe.org/

GoFrame2视频教程:https://www.bilibili.com/video/BV1Uu4y1u7kX/

学习过程以官方文档为主,本文内容均摘自官方文档,

本阶段只介绍Web开发部分,微服务部分以后有机会新开

安装框架工具

https://github.com/gogf/gf/releases

下载对应的包安装。推荐安装到GOROOT的bin目录中

用以下命令查看是否安装成功

gf -v

项目初始化

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn
# 如果已经设置过可以不要上面这两行

gf init gf_demo -u # 如果之前已经创建过项目,并且不需要创建最新版本则省略-u

常用代理地址:

  • https://goproxy.cn
  • https://goproxy.io
  • https://mirrors.aliyun.com/goproxy/

项目启动

进入项目中main.go文件所在的目录运行如下命令

gf run main.go

启动成功后,在浏览器中输入http://127.0.0.1:8000/hello查看结果

框架设计

关于框架设计的内容,有点过于抽象,内容也是偏理论的,初学就来纠结这部分基本上也难以理解,所以这部分的其他内容可以放到以后再来研究。不过也需要了解一点基础知识,比如MVC3-Tier Architecture,这部分内容详见文档代码分层设计,不需要完全理解,知道个大概也就可以了。

项目目录结构

/
├── api 请求接口输入/输出数据结构定义
├── hack 项目开发工具、脚本
├── internal 业务逻辑存放目录,核心代码
│ ├── cmd 入口指令与其他命令工具目录
│ ├── consts 常量定义目录
│ ├── controller 控制器目录,接收/解析用户请求
│ ├── dao 数据访问对象目录,用于和底层数据库交互
│ ├── logic 核心业务逻辑代码目录
│ ├── model 数据结构管理模块,管理数据实体对象,以及输入与输出数据结构定义
│ | ├── do 数据操作中业务模型与实例模型转换,由工具维护,不能手动修改
│ │ └── entity 数据模型是模型与数据集合的一对一关系,由工具维护,不用手动修改。
│ └── service 业务接口定义层。具体的接口实现在logic中进行注入。
├── manifest 包含程序编译、部署、运行、配置的文件
├── resource 静态资源文件
├── utility
├── go.mod
└── main.go 程序入口文件

有关项目目录更多详细介绍以及请求分层流转见文档工程目录设计