Go 是一个开源的编程语言, 它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发, 后来还加入了Ian Lance Taylor, Russ Cox等人, 并最终于2009年11月开源,
在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的, 并且拥有一个活跃的社区。
Go 语言特色
简洁、快速、安全
并行、有趣、开源
内存管理、v数组安全、编译迅速
Go 语言用途
Go 语言被设计成一门应用于搭载 Web 服务器, 存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言, Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持, 这对于游戏服务端的开发而言是再好不过了。
服务器编程, 以前你如果使用C或者C++做的那些事情, 用Go来做很合适, 例如处理
日志数据打包, 虚拟机处理, 文件系统等.
分布式系统, 数据库代理器等.
网络编程, 这一块日前应用最广, 包括Web应用、API应用、下载应用。
内存数据库, 如google开发的groupcache, couchbase的部分组建
云平台, 日前国外很多云平台在采用Go开发, CloudFoundy 的部分组建, 前VMare的技术总监自己出来搞的apcera云平台。
Go语言成功的项目
nsq:bitly开源的消息队列系统, 性能非常高, 目前他们每天处理数十亿条的消息;
docker: 基于lxc的一个虚拟打包工具, 能够实现PAAS平台的组建;
packer: 用来生成不同平台的镜像文件, 例如VM、vbox、AWS等, 作者是vagrant的作者;
skynet:分布式调度框架;
Doozer:分布式同步工具, 类似ZooKeeper;
Heka:mazila开源的日志处理系统;
cbfs:couchbase开源的分布式文件系统;
tsuru:开源的PAAS平台,和SAE实现的功能一模一样;
groupcache:memcahe作者写的用于Google下载系统的缓存系统;
god:类似redis的缓存系统, 但是支持分布式和扩展性;
gor:网络流量抓包和重放工具;
Go语言官网(需要翻墙): https://golang.org/
go中文社区: https://studygolang.com
go中文在线文档: https://studygolang.com/pkgdoc
下载地址:
https://golang.org/dl/
https://golang.google.cn/dl/
学习资料:
Go Web 编程
http://www.treelib.com/book-detail-id-77-aid-3970.html
Go入门指南
https://github.com/Unknwon/the-way-to-go_ZH_CN
https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md