暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

周末学【go+微服务+云原生】go极速学(1)-环境搭建篇

小儿来一壶枸杞酒泡茶 2021-10-30
544

再躺平,我们就老了!!!!!!!!!!!!!

现在云原生已经是大势所趋,GO世界也着实的一片火海吧,之前也有使用的GO开发简单的web业务,对gomicro也有初步的了解和简单使用,苦于无实际的操作项目,年久失修了!!技术的这东西其实就是要经常的打交道,才混得脸熟~恰逢最近周末时间,所以想重新极速回归一下,重新做相关学习笔记,不为别,只是为了让自己后续可以回顾一下。

PY已经玩的太久了,感觉PY在微服务的领域是玩不开的,市面上几乎没看到那个是说使用PY构建微服务的,所以还是需要学习GO,目前go微服务领域框架也是非常的多,而相对的PY的我是真的没知道有几个,就nameko也早就歇菜了~N久没更新了~~本来还想fastapi结合nameko试一试!感觉没必要了!

所以还是得重开Go学习之路!

PS:本系列的笔记,纯属的各种搬砖记录和个人的实践过程的笔记!大佬建议直接的PASS吧!现在GO我也是小白!所以如有纰漏错误,您也愿意指点一二,随时加我的!感谢大佬!

另外:原理的东西我的不会讲太多!毕竟小白一个,所以多数的情况只是纯笔记,和步序记录 不想叽里呱啦的说太多!哈哈

1 本笔记主要内容概要

  • windows下的go本地环境的搭建
  • 配置go环境的代理
  • 配置goland代码自动格式化和自动导包

2 windows下的go本地环境的搭建

GO安装包准备工作

  • GO安装包

安装的过程(基本就是下一步下一步):

PS 为了逼格无用的截图多了一点哈哈!请原谅!

注意安装目录:

等待安装完成:

完成完成:

检查安装情况:

C:\Users\15944>go version
go version go1.17.2 windows/amd64

C:\Users\15944>

安装过程其实对我们的环境变量已经自动化的设置了,所以上面的我们的可以直接的使用GO命令执行!

  • GOPATH变量:

C:\Program Files\Go\bin  指向的安装目录下的GO一些命令

关于GOPATH

  • 是Go语言中使用的一个环境变量
  • 它使用绝对路径提供项目的工作目录。
  • 主要作用是为了后续我们的相关的第三方的包的下载存放的位置。
  • 在 GOPATH 工作目录下,我们的代码总是会生成保存在 $GOPATH/src 目录下。
  • 在对项目执行go build、go install 或 go get 的时候,二进制等文件会出现在 GOPATH/pkg 下。

GOPATH的工作模式一般分为全局和局部模式

  • 全局模式(估计不会使用这种):我们的当前电脑下的会共享同一个GOPATH下的依赖的包,但是通常我们的本地电脑肯定是不止一个项目的开发,每个项目的是区分相关的依赖包,类似的PY的需要使用虚拟环境进行隔离一样。

  • 局部模式(golang中指定属于自己的项目的私有GOPATH)

关于GOROOT

GOROOT 本质其实是go的安装路径

关于GOlangIDE

由于我以前安装有GO就版本的,使用goland新建项目的时候,它使用的不是我的最新安装的SKD路径,识别的还是以前旧的安装的SDK!

通常如果你没安装多个版本的,会自动的默认识别你当前仅有一个GO环境!

但是新建项目的时候,通常的现在我们的基本都是使用GO-Modeuls模式进行项目创建了!

新建项目使用新的GOroot

修改使用我的刚刚安装的go version go1.17.2 windows/amd64 SDK

提示:

网传上面的问题是版本问题了!!!所以我的试一试只能升级一下IDE!

更新环境后可以正常的修改了:

Microsoft Windows [版本 10.0.19041.1237]
(c) Microsoft Corporation。保留所有权利。

C:\Users\15944\Desktop\GoPro\pro\test01>go version
go version go1.17.2 windows/amd64

C:\Users\15944\Desktop\GoPro\pro\test01>


随手示例:

package main

import "fmt"

type Books struct {
 title string
 author string
 subject string
 book_id int
}

func main() {
 var Book1 Books        /* 声明 Book1 为 Books 类型 */
 var Book2 Books        /* 声明 Book2 为 Books 类型 */

 /* book 1 描述 */
 Book1.title = "Go 语言"
 Book1.author = "www.runoob.com"
 Book1.subject = "Go 语言教程"
 Book1.book_id = 6495407

 /* book 2 描述 */
 Book2.title = "Python 教程"
 Book2.author = "www.runoob.com"
 Book2.subject = "Python 语言教程"
 Book2.book_id = 6495700

 /* 打印 Book1 信息 */
 fmt.Printf( "Book 1 title : %s\n", Book1.title)
 fmt.Printf( "Book 1 author : %s\n", Book1.author)
 fmt.Printf( "Book 1 subject : %s\n", Book1.subject)
 fmt.Printf( "Book 1 book_id : %d\n", Book1.book_id)

 /* 打印 Book2 信息 */
 fmt.Printf( "Book 2 title : %s\n", Book2.title)
 fmt.Printf( "Book 2 author : %s\n", Book2.author)
 fmt.Printf( "Book 2 subject : %s\n", Book2.subject)
 fmt.Printf( "Book 2 book_id : %d\n", Book2.book_id)
}

3 配置依赖加速代理源

为了解决go get的速度问题,我们的需要设置一下代理,雷士的Pycharm的切换豆瓣或阿里的pip源。

查看GO环境变量

C:\Users\15944\Desktop\GoPro\pro\test01>go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\15944\AppData\Local\go-build
set GOENV=C:\Users\15944\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\15944\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\15944\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.2
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=C:\Users\15944\Desktop\GoPro\pro\test01\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\15944\AppData\Local\Temp\go-build3203606878=/tmp/go-build -gno-re
cord-gcc-switches


修改:

set GOPROXY=https://proxy.golang.org,direct

使用命令修改:

go env -w GOPROXY=https://goproxy.io,direct

go env -w GOPROXY=https://goproxy.cn,direct

补充源的说明:

http://goproxy.cn:由七牛云运行,支持代理 http://sum.golang.org,经过 CDN 加速,高可用,可应用进公司复杂的开发环境中,亦可用作上游代理;
http://mirrors.aliyun.com/goproxy:由阿里云运行,不支持 sumdb 代理,经过 CDN 加速,高可用,可应用进公司复杂的开发环境中,亦可用作上游代理;
http://goproxy.io:由个人运行,支持代理 http://sum.golang.org。

修改GO环境开发模式:

set GO111MODULE=on 默认的已经打开了!如果没有打开的话,自己需要修改

修改:

go env -w GO111MODULE=on

3 配置goland代码自动格式化和自动导包

这里主要是需要安装一个插件:

PS:gofmt和goimoorts的安装也是使用goget来的安装的!如果你之前没有设置好代理的,如果运气好的话,也许可以成功,运气的不好的话,!!那就可能会出现下面的提示:

安装的时候回提示不存在:

但是的好奇啊!我上面不是已经修改代理了吗!!这里走的还是官网的地址!!!!

重启IDE也不行,那我的收到的安装?

命令:


go get golang.org/x/tools/cmd/goimports

执行:

再去看看面板:颜色不红了!!!说明可以了!!!

验证自动导包加载fiber框架:

完成导入:

运行项目:

结尾

END

简书:https://www.jianshu.com/u/d6960089b087

掘金:https://juejin.cn/user/2963939079225608

公众号:微信搜【小儿来一壶枸杞酒泡茶】

小钟同学 | 文 【欢迎一起学习交流】| QQ:308711822

  • 1:本文相关描述主要是个人的认知和见解,如有不当之处,还望各位大佬指正。
  • 2:关于文章内容,部分内容参考自互联网整理,如有链接会声明标注;如没有及时标注备注的链接的,如有侵权请联系,我会立即删除处理哟。


文章转载自小儿来一壶枸杞酒泡茶,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论