最佳的学习方式就是上手实践操作!!!
本文掌握
不需要深入理解,只是对目录结构有个好印象
- 项目结构
查资料
参考1:项目结构示例
参查2:项目架构思考
参考3:中文golang文档
官网,了解golang语言
(精髓!精髓!精髓!)一般首页都会有个语言的简短介绍。第一次打开官网能记住这一个介绍就可以了
Build fast, reliable, and efficient software at scale(建立快速、可靠、高效的软件)
资料1、资料2,理解项目结构
看的懂的看看,看不懂的粗略带过。下次看到有个印象,可能下次就理解了呢~
资料1,了解下项目结构各目录说明(如下目录结构)。
资料2,扩展思考了下目录结构的意义,及项目结构深层次的理解
系统层级分层:
- 表现层:主要是客户端的展示。
- 服务层:直接为客户端提供的服务或功能。也是系统所能对外提供的功能。
- 领域层:系统内的领域活动。
- DAO层:数据访问对象,通过领域实体对象来操作数据库。
其它系统层级分层(了解就好)
- 模型层( Models )
- 仓库层( Repository )
- 用例层(Usecase )
- 表现层( Delivery )
原则(原则可以记下,可以在开发中做些代码规范):
- 上层总是依赖其下层,依赖关系不跨层。
- 除表现层外,同一层之间方法不允许相互调用。如果同层发生调用,一定是调用的对外不可见的工具方法。
- 从服务层出发进行设计,根据系统需要提供的功能进行分析,确定 Service 接口中的方法。
项目结构
再网上找了些资料整理了一份项目结构
├── gin 为项目根目录
│ ├── Command 为命令行执行处理目录
│ └── command.go
│ ├── Conf 为配置文件目录
│ └── app.ini
│ ├── Router 为路由目录
│ └── router.go
│ ├── Middlewares 为中间件目录
│ └── corsMiddleware.go
│ ├── Controllers 为控制器目录(MVC)
│ └── testController.go
│ ├── Services 为服务层目录,这里把DAO逻辑也写入其中,如果分开也可以
│ └── testService.go
│ ├── Models 为模型目录
│ └── testModel.go
│ ├── Databases 为数据库初始化目录
│ └── mysql.go
│ ├── Sessions 为session初始化目录
│ └── session.go
│ ├── Utils 为util目录
│ └── util.go
└── main.go 为入口文件
第一次使用的简化版目录,以下 Databases 目录也可以先不使用,不调用数据库
├── gin 为项目根目录
│ ├── Router 为路由目录
│ └── router.go
│ ├── Services 为服务层目录,这里把DAO逻辑也写入其中,如果分开也可以
│ └── testService.go
│ ├── Models 为模型目录
│ └── testModel.go
│ ├── Databases 为数据库初始化目录
│ └── mysql.go
│ ├── Utils 为 util 目录
│ └── util.go
└── main.go 为入口文件
整理出上面这个简化版的项目结构,初步学习结束。
看不懂也没关系,只要按上面这个简化版的目录结构创建下文件夹,这篇的学习也就这些。
资料3(go基础学习)
阅读资料3的golang中文文档,了解开发环境配置、GO语言基础、框架beego、框架gin等。
第一次查看建议先粗略看下左边的菜单目录,对整体的内容有个了解。然后开始从上到下的学习。
到这里~
根据资料3的介绍,开始开发环境搭建,做第一个Go程序,你入门了。
第一个go程序:
main.go 文件
package main // 声明 main 包,表明当前是一个可执行程序
import "fmt" // 导入内置 fmt
func main(){ // main函数,是程序执行的入口
fmt.Println("Hello World!") // 在终端打印 Hello World!
}
执行
go run main.go
学习步骤
1、项目结构了解
2、开发环境搭建,第一个Go程序的编写
3、main.go 主入口文件介绍,再简单介绍,包的概念、远程包的引用、本地包的调用、结构体的使用
4、针对项目结构,按模块学习,大致如下:
main.go -> models -> router -> services
(最后放这个学习步骤,对后面的学习流程做下交代。后面的基础学习都可以查阅资料3)
既然看到这了,未完待续!!!