wordpress 禁止更新,优化推广网站seo,html网页代码成品,西安网站开发huanxiGo语言介绍 Go 即Golang#xff0c;是Google公司2009年11月正式对外公开的一门编程语言。
Go是静态强类型语言#xff0c;是区别于解析型语言的编译型语言。
解析型语言——源代码是先翻译为中间代码#xff0c;然后由解析器对代码进行解释执行。
编译型语言——源代码编…Go语言介绍 Go 即Golang是Google公司2009年11月正式对外公开的一门编程语言。
Go是静态强类型语言是区别于解析型语言的编译型语言。
解析型语言——源代码是先翻译为中间代码然后由解析器对代码进行解释执行。
编译型语言——源代码编译生成机器语言然后由机器直接执行机器码即可执行。
Go语言特性
跨平台的编译型语言
语法接近C语言
管道channel切片slice并发routine
有垃圾回收的机制
支持面向对象和面向过程的编程模式
Go语言发展版本/特性
2009年11月7日 weekly.2009-11-06 —— 早期的版本
2012年3月28日 go1 —— 稳定版版的发布
2013年5月14日 go1.1 —— 语言本身的变化、库的变化等。
2013年12月01日 go1.2 —— 提供更好的调度和一个新的语言特性。
2014年6月18日 go1.3 —— 主要是在实现的工作上的变化以及精准的垃圾回收。
2014年12月10日 go1.4 —— 包含了2个很小的语言变更。
2015年8月19日 go1.5 —— 实现的架构变化同时保留了和旧版本的兼容性。
2016年2月7日 go1.6 —— 语言本身、运行时、和库的实现的变化。
2016年8月15日 go1.7 —— 标准库有显着的性能改进和变化。
2017年2月26日 go1.8 —— 标准库有显着的性能改进和变化。
2017年8月24日 go1.9 —— 是包含语言标准库以及运行时的诸多变化。这个版本中的大部分工作都是对运行时和工具的改进。
2018年2月16日 go1.10 —— 大部分更改都在工具链运行时和库的实现中。
2018年8月24日 go1.11 —— modules和WebAssembly支持。
Go语言应用
谁在用
Google
这个不用多做介绍作为开发Go语言的公司当仁不让。Google基于Go有很多优秀的项目比如https://github.com/kubernetes/kubernetes 大家也可以在Github上 https://github.com/google/ 查看更多Google的Go开源项目。
Facebook
Facebook也在用为此他们还专门在Github上建立了一个开源组织facebookgo大家可以通过https://github.com/facebookgo访问查看facebook开源的项目比如著名的是平滑升级的grace。
腾讯
腾讯作为国内的大公司还是敢于尝试的尤其是Docker容器化这一块他们在15年已经做了docker万台规模的实践具体可以参考腾讯万台规模的Docker应用实践_QCon_小盖_InfoQ精选文章 。
主要职责是
负责腾讯游戏蓝鲸平台后台开发工作 负责容器相关的开发工作
和蓝鲸平台容器开发有关。腾讯作为主要使用C/C的公司使用Go会方便很多也有很多优势不过日积月累的C/C代码很难改造也不敢动所以新业务会在Go方面尝试。
百度
目前所知的百度的使用是在运维这边是百度运维的一个BFE项目负责前端流量的接入。他们的负责人在2016年有分享大家可以看下这个 InfoQ - 促进软件开发及相关领域知识与创新的传播-极客邦 .
其次就是百度的消息系统从其最近的Golang招聘介绍就可以看出来.
负责公司手百消息通讯系统服务器端开发及维护
京东
京东云消息推送系统、云存储以及京东商城等都有使用Go做开发。
小米
小米对Golang的支持莫过于运维监控系统的开源也就是 http://open-falcon.com/ 。
此外小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang。
360
360对Golang的使用也不少一个是开源的日志搜索系统Poseidon托管在Github上https://github.com/Qihoo360/poseidon.
还有360的推送团队也在使用他们还写了篇博文在Golang的官方博客上 https://blog.golang.org/qihoo。
360直播在招聘Golang开发工程师。
美团、滴滴、新浪以及七牛等。一般的选择都是选择用于自己公司合适的产品系统来做比如消息推送的、监控的、容器的等Golang特别适合做网络并发的服务这是他的强项所以也是被优先用于这些项目。
应用领域
服务开发、并发、分布式、微服务等方向
Go语言项目
docker:基于lxc的一个虚拟打包工具能够实现PAAS平台的组建。
kubernetes Kubernetes是Google开源的一个容器编排引擎它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时通常要部署该应用的多个实例以便对应用请求进行负载均衡
区块链BTCD 是用go语言实现的完整节点的比特币实现
nsqbitly开源的消息队列系统性能非常高目前他们每天处理数十亿条的消息
packer:用来生成不同平台的镜像文件例如VM、vbox、AWS等作者是vagrant的作者
skynet分布式调度框架
Doozer分布式同步工具类似ZooKeeper
Hekamazila开源的日志处理系统
cbfscouchbase开源的分布式文件系统
tsuru开源的PAAS平台和SAE实现的功能一模一样
groupcachememcahe作者写的用于Google下载系统的缓存系统
god类似redis的缓存系统但是支持分布式和扩展性
gor网络流量抓包和重放工具
Go语架构
GOPATH的工作区包含binsrc和pkg这三个
src——源码包含第三方的和自己项目的
bin——编译生成的可执行程序
pkg——编译时生成的对象文件
Go语言发展前景
Go语言将登上语言榜前列与C和Java并列前三甲
Go语言称霸云计算
Go将统治下一个10年