03.Go的优劣
作者:互联网
1.优势
1.1极简单的部署方式
- 可直接编译成机器码
- 不依赖其他库
- 直接运行即可部署
1.2.静态类型语言
- 编译的时候检查出来隐藏的大多数问题
1.3.语言层面的并发
- 天生的基于支持
重复利用多核
package main import (
"fmt"
"time"
)
func goFunc(i int) {
fmt.Println("goroutine ", i, "...")
}
func main() {
for i := 0; i < 10000; i++ {
go goFunc(i) //开启一个并发协程
}
time.Sleep(time.Second)
}
1.4.强大的标准库
- runtime系统调度机制
- 高效的Gc垃圾回收
- 丰富的标准库
1.5.简单易学
- 25个关键字
- C语言简洁基因,内嵌C语法支持
- 面向对象特征(继承、多态、封装)
- 跨平台
1.6.“大厂”领军
1.7.性能比对
2.Golang强项(适合用来做什么?)
2.1.云计算基础设置领域
代表项目
- docker
- kubernetes
- etcd
- consul
- cloudflare CDN
- 七牛云存储
- ….
2.2.基础后端软件
代表项目
- tidb
- influxdb
- cockroachdb
- …
2.3.微服务
代表项目
- go-kit
- micro
- monzo bank的typhon
- bilibili
- …
2.4.互联网基础设施
代表项目
- 以太坊
- hyperledger
- …
2.5.明星项目
- docker
- kubernates
3.不足
- 包管理-大部分都在
github
上 - 泛型支持 – 进行中
- 所有
Exception
都用Error
来处理(比较有争议) - 对
C
的降级处理,并非无缝,没有C
降级到asm
那么完美(序列化问题)
标签:03,项目,优劣,fmt,go,time,Go,main,goFunc 来源: https://www.cnblogs.com/zsh2871/p/03go-de-you-lie.html