为什么要学习 go 语言
1. 硬件限制
基于摩尔定律,通过增加晶体管数量来提升单线程的性能和处理器频率越来越受限,为了解决这些问题,厂商开始向处理器增加内核数量,引入了超线程技术以及增加更多的缓存空间。但这些方案也有其自身的局限性,硬件上突破太难,所以就需要 go 语言这样能提高性能的软件语言。
2. go 语言为并发而生
大多数现代编程语言(如 Java,Python 等)都来自 90 年代的单线程环境,实现多核资源使用需要耗费大量时间精力。而 go 语言从底层原生支持多核,无须第三方库、开发者的编程技巧和编程经验就可以实现。
3. go 语言性能强悍
相比解释型语言,go 是编译型语言,处理器直接运行的是二进制文件,执行效率更高,性能更好。
4. go 语言简单易学
go 虽然是编译型语言,但语法简单,更偏向于解释型语言。代码风格统一,开发效率高。
go 语言应用前景
1. 云原生
web应用的发展过程:
单体应用-----微服务-----服务网格(多语言) ---- 云原生(serverless) - 多语言
微服务是后续服务的起点
容器是服务网格开始发展的基石
2. 运维
go 语言本身没有 python 更适合运维,但是 docker 和 k8s 的出现使得 go 在运维开发中越来越流行。
3. 中间件
etcd:k/v存储,得益于k8s
tidb:TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适OLAP 场景的混合数据库。
consul:服务注册和服务发现
jaeger: 链路追踪
nsq: 消息队列
influxdb: 时序数据库
prometheus:监控和警报系统
4. 区块链
go 语言由于先天的并发优势在高并发场景中得天独厚,像以太坊、fabric 等区块链应用均是由 go 语言开发的。
go 语言安装与配置
1. go 语言安装下载
由于 go 语言是由谷歌开发,资源使用的谷歌的服务器,而国内对于访问谷歌有些困难,因此推荐使用国内镜像来下载安装:https://studygolang.com/dl
2. go 语言配置
Go 1.13 及以上(推荐)
打开你的终端并执行
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
完成。
macOS 或 Linux
打开你的终端并执行
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn
或者
$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile
完成。
Windows
打开你的 PowerShell 并执行
C:\> $env:GO111MODULE = "on"
C:\> $env:GOPROXY = "https://goproxy.cn"
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于