上一盘还在讨论游戏引擎这一篇又开始讨论 后台语言 跳度有点大.
最近游戏的后台服务语言从 nodejs 换成了 golang,这里也记录一下 golang 语法外的知识点吧.
如果你是 golang 的新手你可以从头看看 有助于你换个角度学习golang

这些只是我个人的观点, 不喜勿碰.

设计的知识点如下:

  1. golang 的命令
  2. golang 的环境
  3. 关于包的问题
  4. 罗列几个golang 的包吧
  5. golang 开发工具

golang官网
里面优质的文章不多, 但是也可以参考, 也许是我没有找到.
golang中文社区
golang github 库地址

golang 的命令

golang中比较常见的命令如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
go run <go文件> // 用于执行 go 脚本 主要用在调试环境
go build <go文件> // 用于构建 go 脚本 主要在生产环境中使用

go get -u <要拉取库的地址> // 下载这个库文件到 你的 `GOPATH` 目录中的src目录中 -u 不获取依赖
go install // 编译你下载的库 到 `GOPATH/pkg/<你的平台>`这个目录下 可以是 可执行文件, 也可以是库文件

go env // 打印当前 go 中的环境变量的值 这个些变量可以在 电脑的环境变量中配置

go list // 罗列出你安装的包

go version // 打印当前的版本

go test // 测试单元 ,,, 用于测试你的逻辑

go clean // 清楚构建缓存

// 其余的后面更新
go mod
go tool
go fmt // go 的格式化工具
go fix

golang 的环境

这里主要讲解一些 GOPATH GOROOT GOPROXY

GOPATH

这个可以说是在 golang 源码之外的工作空间
golang 会搜索 GOPATH/src 这个目录中的包和代码
一般 go get 的库都是放在这个目录下面
你可以自定义框架 放在这个目录下面
但是自己看法的工程就不要放在这个目录下面了,,, 可以在 GOPATH 之外创建工程 这样不用局限于 GOAPTH src目录下
GOAPTH 如果是 Windows平台 尽量不要定义在 C盘 因为可能会出现权限问题

GOROOT

这个是 golang 的 自身包的路径 和 可执行文件都在这里面

GOPROXY

这个是 golang 的代理用的 因为 golang 有些包需要科学上网, 或者网速特别的慢, 你需要使用一个镜像 提升下载速度

这是网上搜索的地址

1
2
3
4
阿里: https://mirrors.aliyun.com/goproxy/
官方: https://goproxy.io/
中国:https://goproxy.cn
其他:https://gocenter.io

配置 GOPROXY 的值为这个地址, 配置应该很简单, 就是配置你的环境变量

mac 配置临时变量

export GOPROXY=https://mirrors.aliyun.com/goproxy/

关于包的问题

这里主要讲一下 golang 下载包总是 timeout 这个是很烦人的, 有的时候你科学上网都不管用

超时原因

你安装的包里面有 golang.org 地址下面的包, 这个是golang 之前的地址, 现在移交到了 github上了,, 举个例子吧

golang.org/x/sys/unix 超时

1
2
3
4
5
git clone http://github.com/golang/sys.git $GOPATH/src/golang.org/x/sys // 这里要克隆岛你的GOPATH里面

如果我们需要sys包里面的unix包,执行上述操作后,继续操作

go install golang.org/x/sys/unix

罗列几个golang 的包吧

在开始写游戏后台框架的时候我也参考几个框架这里有记录一下几个游戏框架
我不会去评判这个框架的好坏
这里都有描述我就不做过多的介绍了

包名 地址 描述
sonyflake https://github.com/sony/sonyflake A distributed unique ID generator inspired by Twitter’s Snowflake
pmgo https://github.com/struCoder/pmgo golang 进程管理工具
gin https://github.com/gin-gonic/gin a http web framework
cellent https://github.com/davyxu/cellnet High performance, simple, extensible golang open source network library
websocket https://github.com/gorilla/websocket A WebSocket implementation for Go. docs: https://godoc.org/github.com/gorilla/websocket
gonet https://github.com/bobohume/gonet go分布式服务器,基于内存mmo

golang 基础语法学习网站

// golang 的基础语法, 还有些高级几用法 如反射, CGO, 汇编, 如果不是框架人员, 这个些可以先不用看, 因为你用不到. 不过后面你可以了解了解, 对你也没坏处
go语言圣经(中文版)
// 涉及基础的 web 开发, RPC, 分布式
go高级编程

golang 开发工具

这里我推荐使用 GOLAND 这工具相对来说, 写起来比较的舒服, 这里提供一个 破解版本, 有钱人事可以购买正版
GOLANG 2019.2 密码:n56v
补丁 密码:itkh

怎么破解自己百度搜索 一搜一大把.

总结

  1. golang 是编译型的语言, 所以热更新比较的麻烦,
  2. 游戏相关的开发框架比较的少, 都得自己开发框架, 门槛较高, 需要了解的知识点比较多

最后更新: 2019年09月14日 21:08

原始链接: https://leng521.top/posts/a3f4f7e2/