我先想分析一下现在有哪些公司使用go 语言,go语言在实际开发中有哪些使用场景,为什么要从其他语言转换成go语言。我觉得这是学习一门新语言一个很重要的问题。
Go大概09年面世以来,已经有很多公司开始使用Go语言开发自己的服务,甚至完全转向Go开发,也诞生了很多基于Go的服务和应用,比如Dokcer、k8s等,现在我们看下,有哪些大公司在用Go语言了。
【Google】
这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在Github上 https://github.com/google/ 查看更多Google的Go开源项目。
【七牛】
整个产品(包括基础服务、Web端、统计平台、各类小工具等等),Go代码行数占比:99.9%。七牛算是国内第一家选 Go 语言做服务端的公司。早在2011年,当Go语法还没完全稳定下来的情况下,七牛就已经选择将Go作为存储服务端的主题语言。关于这点,七牛CEO许式伟谈到:“我曾多次公开分享过Go语言的亮点,包括它的并发编程模型、对软件工程的支持,以及对编程哲学的重塑。在我看来,Go对并发与分布式的支持算不上特别,所有新兴的语言也都有工程化的思想,所以编程哲学的重塑才是Go语言独树一帜的根本原因,其它语言仍难以摆脱OOP或函数式编程的烙印,只有Go完全放弃了这些,对编程范式重新思考,对热门的面向对象编程提供极度简约但却完备的支持。Go把其全新的编程理念,称为面向连接的语言。作为一名老程序员,我认为Go的编程哲学独具魅力,超越其它新兴语言。前VMware云平台的首席技术官Derek Collison,曾在2012年断言Go语言将在两年内制霸云计算。我认为他的说法略有激进,但和实际的发展趋势吻合,Docker、CoreOS等新的云计算基础设施都基于Go。在我看来,Go是互联网时代的C语言,不仅会制霸云计算,10年内将会制霸整个IT领域。” 参考http://digi.163.com/14/1121/22/ABJV4BNU001618JV.html
【新浪微博】
中间件和弹性调度用 Java 和 Go 编写,微博视频转码及存储服务用 Go 编写。
【京东】
京东云消息推送系统用 Go 编写
【哔哩哔哩】
参考:https://www.zhihu.com/question/65782086 如何看待哔哩哔哩用go语言重写所有的java后台工程?
【百度】
百度运维的一个BFE项目,负责前端流量的接入。他们的负责人在2016年有分享,大家可以看下这个 http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend .其次就是百度的消息系统,从其最近的Golang招聘介绍就可以看出来. > 负责公司手百消息通讯系统服务器端开发及维护
【小米 】
小米对Golang的支持,莫过于运维监控系统的开源,也就是 http://open-falcon.com/ 。此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang。
Go适合用来做什么 ?
服务器编程:以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
分布式系统:数据库代理器等 。
网络编程:这一块目前应用最广,包括Web应用、API应用、下载应用、 内存数据库,前一段时间google开发的groupcache,couchbase的部分组建。
云平台:目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。
Go 的优点的体会 ?
为什么我会选择Golang呢?
其实我在做出这个选择之前已经花了大量时间做过详尽调研。 国外如Google、AWS、Cloudflare、CoreOS等,国内如七牛、阿里等都已经开始大规模使用Golang开发其云计算相关产品。 跟着世界级巨人的脚步应该不至于走错方向,而且在学习Golang的过程中,发现Golang入门非常简单 。另外,云风博客中曾说过这样一句话:“我发现我花了四年时间锤炼自己用 C 语言构建系统的能力,试图找到一个规范,可以更好的编写软件。结果发现只是对 Go 的模仿。缺乏语言层面的支持,只能是一个拙劣的模仿。”参考 https://blog.codingnow.com/2010/11/go_prime.html
网友评论