go语言环境官网(云原生所需的编程基础)
go语言环境官网(云原生所需的编程基础)并发:通过进程模型进行扩展。端口绑定:通过端口绑定提供服务。后端服务:把后端服务当做附加资源。构建,发布,运行:严格分离构建和运行。进程:以一个或多个无状态进程运行应用。
之前写的【从0开始学k8s】,基本60%都是做开发,但是做开发的很多是不写go的,学go就是为了云原生,不会跨度非常大的讲go的所有细节,主要目的用go语言,用go语言写一些基本的程序,读懂Go的代码。发现一个问题通过所学习,可以解决代码上的问题,找到问题的原因。会go语言,原理的东西不理解,一般面试是过不了的。长见的问题,系统地给大家讲解。
- ① 12 factors
基准代码:一份基准代码,多份部署。
依赖:显式生命依赖关系【方便管理】。
配置:在环境中存储配置。
后端服务:把后端服务当做附加资源。
构建,发布,运行:严格分离构建和运行。
进程:以一个或多个无状态进程运行应用。
端口绑定:通过端口绑定提供服务。
并发:通过进程模型进行扩展。
易处理:快速启动和优雅终止可最大化健壮性。
开发环境与线上环境等价:尽可能地保持开发,预发布,线上环境相同
日志:把日志当作事件流。
管理进程:后台管理任务当作一次性进程运行。
为什么需要使用Go语言(二)- ① Go语言的原则
- 大道至简(less is exponentially more)【太复杂,内部的开发人员沟通都感觉复杂的话,这个应用就很失败】
- 少做胜于多做(Do Less,Enable More)
- ② 为什么需要Go语言
并行处理支持力度最大。减少关注技术本身的调优,尽量多关注业务的开发。
其他编程语言的弊端。
- 硬件发展速度远远超过软件。
- C语言等原生语言缺乏好的依赖管理(依赖头文件)。
- Java和C 等语言过于笨重。
- 系统语言对垃圾回收和并行计算等基础功能缺乏支持。
- 对多核计算机缺乏支持。
Go语言是一个可以编译高效,支持高并发的,面向垃圾回收的全新语言。
- 秒级完成大型程序的单节点编译。
- 依赖管理清晰。
- 不支持继承,程序员无需花费精力定义不同类型之间的关系。
- 支持垃圾回收,支持并发执行,支持多线程通讯。
- 对多核计算机支持友好。
Go语言不支持的特性
- 不支持函数重载和操作符重载。
- 为了避免在C/C 开发中的一些Bug和混乱,不支持隐式转换。
- 支持接口抽象,不支持继承。
- 不支持动态加载代码。
- 不支持动态链接库。
- 通过recover和panic来替代异常机制。
- 不支持断言。
- 不支持静态变量。
- ③ Go语言特性衍生来源
- ① 官网
https://golang.google.cn/ 无需翻墙
- ② 下载windows版本的go
- ② 安装步骤
修改安装目录,尽量目录不要加入空格,防止出现奇葩异常错误
安装完成后,win R输入cmd进入命令行,切换到Go的安装目录。
因为是安装版本,自动创建了环境变量,查看下环境变量看是否正确【设置-高级系统设置-环境变量】
环境变量
- GOroot:go的安装目录
- GOPATH
l src:存放源代码
l pkg:存放依赖包
l bin:存放可执行文件
国内用户建议设置 goproxy:export GOPROXY=https://goproxy.cn
- ③ IDE 设置(VS Code)
下载并安装 Visual Studio Code
https://code.visualstudio.com/download
安装 Go 语言插件
https://marketplace.visualstudio.com/items?itemName=golang.go
其他可选项
- Intellj goland,收费软件
- vim,sublime等
- ④ VS code插件安装
File->Preference->Settings->Extensions->Go Configuration->Edit in setting.json
settings.json
{
"workbench.colorTheme": "Default Dark "
"security.workspace.trust.untrustedFiles": "open"
"go.alternateTools": {
"go.goproxy":"https://goproxy.cn"
"go.goroot":"C:\\Go"
"go.gopath":"C:\\GoWorkspace"
}
}
- ⑤ 设置代理,使的VsCode生效
上面配置的参数设置好后,打开VsCode的终端
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn direct
这里记住!!!!记住重启VsCode,一定要重启。
这里记住!!!!记住重启VsCode,一定要重启。
这里记住!!!!记住重启VsCode,一定要重启。
- ⑥ 重新打开后,写个Go代码,保存后,开始自动下载插件
- ⑦ 随便写个go代码。运行下试试
没用插件,写的终端命令的方式。
- ⑧ Idea 安装go插件
在intelliJ的Plugins中可以找Golang的插件 直接下载即可。但是大部分时候因为大家都知道的原因,并不一定能够搜索到,或者能够搜索到也不一定能够下载,遇到这种情况可以去官网上下载对应的jar包再手动安装。
插件地址:https://plugins.jetbrains.com/plugin/5047
下载最新版本的Golang插件。
选择 install plugin form disk 安装 安装完成之后可以看到Golang插件:
插件安装完后,重启idea。新建立项目选择Go
- ⑨ 最简单的方式安装goland
一路next,包括sdk也不用下载,它会根据你要的版本自动下载。
- ⑦ Go的一些基本命令
build: 编译包和依赖
clean: 移除对象文件
doc: 显示包或者符号的文档
env: 打印go的环境信息
bug: 启动错误报告
fix: 运行go tool fix
fmt: 运行gofmt进行格式化
generate: 从processing source生成go文件
get: 下载并安装包和依赖
install: 编译并安装包和依赖
list: 列出包
run: 编译并运行go程序
test: 运行测试
tool: 运行go提供的工具
version: 显示go的版本
vet: 运行go tool vet
- ⑩ 国内和国外直接在线练习Go代码
Golang playground
官方 playground
https://play.golang.org/
可直接编写和运行 Go 语言程序
国内可直接访问的 playground
https://goplay.tools/
PS:这次给golang的环境已经准备好了,比较推荐使用goland工具,方便省心,vsCode和其他的方式各种环境容易让你糟心。go因为它自身的高并发能力,所以公司用go改造中间价。云原生90%都是go。