这是我参与「第三届青训营 -后端场」笔记创作活动的的第一篇笔记。
1 什么是Go语言?(特性)
- 高性能、高并发;
- 语法简单;
- 丰富的标准库;
- 完善的工具链;
- 静态链接;
- 快速编译;
- 跨平台;
- 垃圾回收。
2 Go的企业应用场景?
字节跳动已经全面拥抱了 go 语言,公司内部有上万个微服务使用 golang 来编写,不久前也开源了 GO RPC 框架 KiteX。
根据拉勾的招聘数据,腾讯、百度、美团、滴滴、深信服、平安、OPPO、知乎、去哪儿、360、金山、微博、哔哩哔哩、七牛、PingCAP 等公司也在大量使用 Go 语言。国外 Google Facebook 等公司也在大量使用 Go 语言。
从业务维度看过语言已经在云计算、微服务、大数据、区块链、物联网等领域蓬勃发展。然后在云计算、微服务等领域已经有非常高的市场占有率。Docker、Kubernetes、Istio、etcd、prometheus 几乎所有的云原生组件全是用 Go 实现的。
3 字节跳动为什么全面拥抱Go语言?
最开始公司的后端业务主要是 web 后端,早期团队非 Java 背景,C++ 不太适合在线 Web 业务,所以最开始的服务都是 python的。大概从 2014 年开始,随着业务体量的增长,python 遇到一些性能问题。
一些团队初步尝试使用了 Go,发现入门很简单,开发效率高,性能也比较好。go语言的开发和部署非常简单,顺带解决了之前python带来的很头疼的依赖库版本问题。一些业务尝到甜头之后,后面开始公司级大力推广,诞生了公司内部的基于golang的rpc和http框架。随着框架的推广,越来越多的python服务使用golang重写,至今为止,golang已经成为内部使用率最高的编程语言。