go学习笔记-day23

学习是由时间成本和经济成本的,学习go也同样,那么 go 语言能做什么?

摘自博客:

https://blog.csdn.net/weixin_41667472/article/details/109908466

一、我们为什么选择Go语言

执行性能

缩短API的响应时长,解决批量请求访问超时的问题。GO语言不一样,通过协程可以方便的实现API的并行处理,达到处理效率的最大化。 依赖Golang的高性能HTTP Server,提升系统吞吐能力,由PHP的数百级别提升到数千里甚至过万级别。

开发效率

GO语言使用起来简单、代码描述效率高、编码规范统一、上手快。 通过少量的代码,即可实现框架的标准化,并以统一的规范快速构建API业务逻辑。 能快速的构建各种通用组件和公共类库,进一步提升开发效率,实现特定场景下的功能量产。

 

二、Go语言能做什么

鉴于Go语言的特点和设计的初衷,

Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;

网络编程方面,Go语言广泛应用于Web 应用、API应用、下载应用等;

( Go内置的net/http包基本上把我们平常用到的网络功能都实现了 )

除此之外,Go语言还适用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。

 

三、国内外有哪些企业或项目使用Go语言

 

云计算基础设施领域:

代表项目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存储等。

基础软件:

代表项目:tidb、influxdb、cockroachdb等。

微服务:

代表项目:go-kit、micro、monzo bank的typhon、bilibili等。

互联网基础设施:

代表项目:以太坊、hyperledger等。

 

go语言

Go 语言自己的早期源码使用C语言和汇编语言写成。从 Go 1.5 版本后,完全使用 Go 语言自身进行编写。Go 语言的源码对了解 Go 语言的底层调度有极大的参考意义,建议希望对 Go 语言有深入了解的读者读一读。

项目链接:

https://github.com/golang/go

 

beego

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

项目链接:

https://github.com/astaxie/beego

 

delve

Go语言

强大的调试器,被很多集成环境和编辑器整合。

项目链接:

https://github.com/derekparker/delve

 

http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend

盛大云CDN

  • 网址:盛大云计算
  • 应用范围:CDN的调度系统、分发系统、监控系统、短域名服务,CDN内部开放平台、运营报表系统以及其他一些小工具等

 

 

Go 语言不会吞食底层到 C 和 C++ 那个级别的,也不会吞食到高层如 Java 业务层的项目。Go 语言能吞食的一定是 PaaS 上的项目,比如一些消息缓存中间件、服务发现、服务代理、控制系统、Agent、日志收集等等,没有复杂的业务场景,也到不了特别底层(如操作系统)的中间平台层的软件项目或工具。而 C 和 C++ 会被打到更底层,Java 会被打到更上层的业务层。

杀手级应用:

我们再用上面的标尺来量一下 Go 语言的杀手级应用 Docker,你会发现基本是一样的。

Docker 上手很容易。
Docker 解决了运维中的环境问题以及服务调度的痛点。
Docker 的生态圈中有大公司在后面助力。比如 Google。
Docker 产出了工业界标准 OCI。
Docker 的社区和生态圈已经出现像 Java 和 Linux 那样的态势。
……

同样,我们可以看到 Kubernetes 作为服务和容器调度的关键技术一定会是最后的赢家。

 

posted @ 2021-12-17 15:23  铁塔  阅读(32)  评论(0编辑  收藏  举报