关于它

Go(又称Golang[3])是Google开发的一种静态链接、强类型编译型并发型,并具有垃圾回收功能)的编程语言

简单讲

1.什么是Go语言?

image.png
Go是一门并发支持、垃圾回收和编译型系统编译语言,旨在创造一个门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。

Go语言是Rob Pike以及Ken Thompson于2007年9月开始设计的,Go是基于Inferno操作系统所开发的。[4]Go于2009年11月正式宣布推出,成为开放源代码项目,并在LinuxMac OS X平台上进行了实现,后来追加了Windows系统下的实现。(这个类似土拨鼠的logo是由Rob Pike 的妻子 Renee French 绘制的)

2.Go语言的优点

Go语言的价值:Go在谷歌:以软件工程为目的的语言设计
Go的主要特点有如下几点:

  • 1、类型安全和内存安全
  • 2、以非常直观和极低代价的方案实现高并发
  • 3、高效的垃圾回收机制
  • 4、快速编译(同时解决了C语言中头文件太多的问题)
  • 5、为多核计算机提供性能提升的方案
  • 6、内置完整测试框架,其中包括单元测试、性能测试、代码覆盖率、数据竞争,以及用来调优的 pprof,这些都是保障代码能正确而稳定运行的必备利器。
  • 7、还可通过环境变量输出运行时监控信息,尤其是垃圾回收和并发调度跟踪,可进一步帮助我们改进算法,获得更佳的运行期表现。

3. go 社区项目

1. Docker

Docker (github) 是一种操作系统层面的虚拟化技术,可以在操作系统和应用程序之间进行隔离,也可以称之为容器。Docker 可以在一台物理服务器上快速运行一个或多个实例。例如,启动一个 CentOS 操作系统,并在其内部命令行执行指令后结束,整个过程就像自己在操作系统一样高效。

2. Kubernetes

(github)google公司开发的构建于 Docker 之上的容器调度服务,用户可以通过 Kubernetes 集群进行云端容器集群管理。系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作。其核心概念是 Container Pod(容器仓)。

3. gin

(github) 是一款go的web高性能轻量级框架,本文下面很多例子是采用了此框架。

4. etcd

etcd(github) 是一款分布式、可靠的 KV 存储系统,可以快速进行云配置。由 CoreOS 开发并维护键值存储系统,它使用Go语言编写,并通过 Raft 一致性算法处理日志复制以保证强一致性。

5. beego

beego(github) 是一个类似 Python 的 Tornado 框架,采用了 RESTFul 的设计思路,使用Go语言编写的一个极轻量级、高可伸缩性和高性能的 Web 应用框架。

6. martini

(github) 一款快速构建模块化的 Web 应用的Go语言框架。

7. codis

(github)国产的优秀分布式 Redis 解决方案。可以将 codis 理解成为 Web 服务领域的 Nginx,它实现了对 Redis 的反向代理和负载均衡。

8. delve

(github) Go语言强大的调试器,被很多集成环境和编辑器整合。