1. Golang语言特性
1.1 Golang的优势
- 部署简单
- 可直接编译成机器码执行
- 不依赖其他库
- 直接运行即可部署
- 静态类型语言
- 编译时即可检查出来隐藏的大多数问题
- 语言层面的并发
- 天生底层的支持
- 充分利用多核性能
- 强大的标准库
- runtime系统调度机制
- 高效的GC垃圾回收
- 丰富的标准库
- 简单易学
- 仅25个关键字
- C语言简洁基因,内嵌C语法支持
- 面向对象特征
- 支持跨平台
- 大厂认可
- 字节跳动已经全面拥抱了go 语言,公司内部有上万个微服务使用 golang 来编写,不久前也开源了GO RPC框架KiteX
- 腾讯、百度、美团、滴滴、深信服、OPPO、去哪儿、360、七牛等公司也在大量使用go语言
1.2 Golang适合做什么
- 云计算基础设施领域
- docker
- kubernetes
- etcd
- consul
- cloudflare CDN
- 七牛云存储
- 基础后端软件
- tidb
- influxdb
- cockroachdb
- 微服务
- go-kit
- micro
- 互联网基础设施
- 以太坊
- hyperledger
1.3 Golang的不足
- 包管理,大部分在github上
- 无泛化类型
- 所有Exception都用Error来处理(有争议)
- 对C降级处理,并非无缝衔接,存在序列化问题