说明
- 发布站点
GitHub CSDN 新浪 - 最后更新
2012-03-31 Go1正式发布,更新相关资料,详见 变更记录 - 缘起说明
想学习称手的新语言,发现Go后非常感兴趣,也把接触到的一些资料整理共享出来。 -
资料若有错误或缺漏,或者大家有更好的建议,欢迎 邮件联系 可看 已收集建议 - 收集原则
尽量收集原创链接,有时会记录一些学习心得,或摘录一些启发自己的原文 -
如果同学们觉得内容还有点帮助,欢迎转载,指明原始出处更好,谢谢! (^_^) -
- 注意
Go1变化较大,网上相关翻译文章可能未及时更新,请以官方英文为主。
网址导航
搜索引擎
官方资源
-
-
版本安装
-
-
参考手册
-
-
学习资料
-
-
项目开发
-
-
邮件列表
- golang-nuts
(讨论用Go开发) - golang-china
(讨论用Go开发,都是中文兄弟) - golang-dev
(讨论Go自身开发) - golang-checkins
(汇集Go提交信息) - golang-announce
(Go版本发布的通知) - google-appengine-go
(讨论GAE的Go支持)
- golang-nuts
-
-
其他资源
cat-v
- 书籍
文章 讲演 IRC日志 - 相关开发工具
- 支持Go的编辑器
-
- 用Go开发的产品
- 用cgo绑定的C库
- 用Go直接开发的库
-
- 使用Go的组织
- 各方人士评价Go开发
- 大学Go培训课程情况
-
- Go语言其他实现
- Go支持的CPU架构
- Go支持的操作系统
- 各操作系统下的安装包
网站
博客
新闻资料
2012年
- 2012-03-29
Go 项目取得了历史性进展,Go 1 横空出世 新闻
2011年
- 2011-11-17
谷歌将在明年初推出Go语言首个正式版本1.0 新闻 - 2011-11-10
Go语言两周年 官方博文(译) - 2011-10-11
Go App Engine SDK 1.5.5发布 官方博文(译) - 2011-10-05
Go 1 预览 官方博文(译) - 2011-07-21
Go在App Engine现在已经公开可用了 官方博文 新闻1 新闻2 - 2011-06-03
Google 推出 C++ Go Java Scala的基准性能测试 新闻 - 2011-05-18
Dr. Dobb’s对Ken Thompson的采访 原文(译) - 2011-04-16
Brad Fitzpatrick 正式参与到 Go 语言项目中 新闻 - 2011-04-13
Rob Pike谈Google Go:并发,Type System,内存管理和GC 新闻 - 2011-05-23
Go在Google I/O 2011:视频 官方博文(可参见后文讲演视频) - 2011-03-16
Go变得更加稳定了 官方博文
2010年
- 2010-11-10
Go语言一周年 官方博文(译1 译2) - 2010-10-12
Google解决Go语言名称问题 新闻 - 2010-09-15
Go Playground介绍 官方博文 新闻 - 2010-09-06
Go 荣获 2010 Bossie 奖 官方博文(译) - 2010-07-22
Go语言创始人对Java、C++的复杂性不满 新闻(译) - 2010-06-06
Go在Google I/O 2010:视频 官方博文(可参见后文讲演视频) - 2010-05-27
Go在Google I/O 2010:常见问题 官方博文(译) - 2010-05-12
Go在Google I/O 2010:即将来临 官方博文 - 2010-05-05
新的谈话和教程 官方博文 - 2010-03-18
Go:2010年3月的最新消息 官方博文 - 2010-01-29
GCC宣布对Go语言的支持 新闻 - 2010-01-11
1月编程榜发布:Google Go意外夺得年度编程语言 新闻
2009年
官方资料
官方博文
-
-
语言
-
-
包
-
-
工具
-
-
2012年其他博文
-
-
2011年其他博文
- 2011-12-21
调查Go社区情况 原文 - 2011-12-19
使用Go开发StatHat 原文 - 2011-12-13
从零到Go:24小时内登上Google主页的Go语言应用“火鸡”doodle开发纪实 原文(译) - 2011-11-01
编写可扩展的App Engine应用 原文 - 2011-10-30
使用GNU调试器调试Go代码 原文(译) - 2011-10-04
从浏览器中学习Go 原文 - 2011-09-01
两个Go演讲:“Go的词汇扫描”和“Cuddle:一个App Engine演示” 原文 词汇扫描优酷视频 AppEngine优酷视频 - 2011-06-30
“Go中的一级函数”和新的教程说明 原文 - 2011-06-03
Go外部库的关注 原文 - 2011-05-10
Go和Google App Engine 原文(译) - 2011-04-21
Go在Heroku中的应用 原文(译1 译2) - 2011-04-15
Gofix介绍 原文(译1 译2 译3)
- 2011-12-21
-
-
2010年其他博文
社区Wiki
讲演视频
- 用Go写web程序
优酷视频 优酷视频 YouTube视频 - Rob
Pike 和 Andrew Gerrand 在 Google I/O 2011 大会上的谈话 - 回顾一个简单web应用的架构和开发,揭示
GAE 上的 Go实现
- Rob
- 现实中的Go语言
PDF 土豆视频 - Andrew
Gerrand 在 在Google I/O 2011 训练营(Boot Camp)上的谈话 - 概述了Go语言的类型系统和并发模式,并提供四个用Go程序解决实际问题的案例
- Andrew
- Go语言编程
优酷视频 YouTube视频 - Rob
Pike 和 Russ Cox 在 Google I/O 2010 大会上的演讲 - 通过一些表现Go语言特性的样例,揭示了Go与其他语言的不同
- 内容涉及并发、内置类型、方法和其他类型、通过接口构建程序
- Rob
- Go语言编程实践
幻灯 优酷视频 - 谈及使用Go语言开发一个完整的web应用
- 通过一个简单的短地址服务,揭示设计、存储、并发、扩展性等细节
- Go语言技术座谈
PDF 优酷视频(英文字幕) YouTube视频 相关新闻 - Rob
Pike 2009年10月在google的一次四小时演讲 - Go语言的第一次公开介绍,这以后Go语言不断在发展改变,但这次介绍依然是出色的
- Rob
- YouTube上的Go编程频道
频道 - 富于表现力的Go语言
PDF - Rob
Pike 在 2010 JAOO 大会上的演讲 - 谈到
Go 语言富于表现力,又容易理解
- Rob
- 不同设计的Go语言
演讲介绍 PDF 优酷视频 Pike在56:19时出现 - Rob
Pike 在2010开源技术大会上的演讲 - 为不了解Go语言的听众,提供的教程,介绍Go语言相关背景和重要特性。
- Rob
- Public
Static Void 演讲介绍 PDF 优酷视频 - Rob
Pike 在2010开源技术大会上的演讲 - 反思面向对象的编程
- Rob
- 新兴语言Go的演讲
演讲介绍 PDF - Rob
Pike 在2010开源技术大会上,对新兴语言Go的演讲 - 摘要:Go在并发性上和大多数语言都不同,即便是以并发为中心的Erlang等。
回顾了从Hoare的1978年论坛到Go的历程,深刻介绍Go怎样以及为什么这样做
- Rob
- Go语言的GCC前端
PDF - Ian
Lance Taylor 在 GCC 2010 峰会上的演讲 - 谈到了对GCC的Go语言前端
- Ian
- Go语言的宣传视频
优酷视频 YouTube视频 - Russ
Cox 演示Go语言的快速编译
- Russ
开发团队
- Ken
Thompson 百度百科 - Unix之父,1983年图灵奖(Turing
Award)和1998年美国国家技术奖(National Medal of Technology)得主。 - 是Unix操作系统、Plan9操作系统、UTF-8编码和B编程语言(C的前身)的创立者之一。
- 94年底跑到莫斯科开米格29战机,然后2000年从贝尔实验室正式退休全职飞行。2007年加入谷歌
- Unix之父,1983年图灵奖(Turing
- Rob
Pike 个人网站 Google介绍 - 曾在贝尔实验室工作,是Unix操作系统、Plan9操作系统、Limbo编程语言和UTF-8编码的主要设计者,
- 还有两本书The
Unix Programming Environment和The Practice of Programming;
- Robert
Griesemer - 曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。
- Ian
Lance Taylor 博客 - GCC社区的超级活跃人物,是gold连接器和GCC过程间优化LTO的主要设计者之一,是Zembu公司的创始人之一。
- Russ
Cox 博客 - Plan9圈子的名人。也可以说是Ken/Dennis/Rob的Unix衣钵的传承人。
- 读高中时就连续三年代表美国参加国际信息学奥林匹克竞赛。然后在MIT直到2008年博士毕业。
- 他把Plan9操作系统的运行环境几乎完整的移植到Linux,FreeBSD和MacOSX上。
- Andrew
Gerrand 博客 - Brad
Fitzpatrick - 访谈Brad
Fitzpatrick—《编程人生》 - 80后,五岁学编程
- 综合型SNS交友网站
LogoLiveJournal 创始人,后卖出 - 网站日渐流行使其开发了memcached
、Perlbal 和 MogileFS等开源项目 - 2007
年选择加入Google,2011年4月16日全职加入 Go 项目
- 访谈Brad
其他资料
书籍教程
- 2011-11-22
《Go Book》Miek Gieben - 2011-11-10
《Learning Go》 - 书籍:
原文网址 《学习Go语言》中文 - 作者:
Miek Gieben (博客)
- 书籍:
- 2011-10-16
《Network programming with Go》 Jan Newmarch 原文 - 《Go语言网络编程》
- 2011-05-21
《GoLang Tutorials》 Sathish VJ 原文 - 《Go语言教程》
- 2010-02-22
《Go语言入门教程》 柴树杉 地址 - 2010-01-15
《Google Go: A Primer》 Samuel Tesla 原文 - 翻译:
《Google Go 初级读本》
- 翻译:
实践与评价 2011
- 2011-12-26
《Uniqush: 服务器端手机推送平台》 - Uniqush(介绍帖
主页 配图说明 源码) Go体会帖 - 作者
monnand :已有十年开发经验,第一语言是C,用C/C++, Python, Perl,现在也用go,偶用java - Uniqush是用Go开发的服务系统,开源,可自行搭建服务
- 常见智能手机平台都会提供云服务,负责向手机客户端推送消息(Google的android是C2DM,苹果叫APNS等)
- uniqush
抽象了官方云服务调用接口,开发者可以用统一的接口,开发推送消息的代码 - 后续支持更多云服务,另外还将提供客户端开发库
- Go体会
- Go标准库变化太快,等Go1了
- Gointerface最大好处在于,可以先实现后抽象
- goroutine
很适合多核,配合channel很方便很好用 - 内置map很方便,slice很好用...提高开发效率
- 面向对象?常用的设计模式都可以用Go来实现。你还要啥自行车呢?
- 效率!它是个编译语言!它要有效率!
- Uniqush(介绍帖
- 2011-12-19
《使用Go开发StatHat》 - 2011-12-13
《Google 主页“火鸡”应用开发纪实》 - Go官方博文
(译) 源码 - 作者Reinaldo
Aguiar:是Google 搜索团队软件工程师 - App
Engine runtime 选型:图像处理任务极度依赖 CPU...性能是决定性因素。 - Python
2.7 应用处理请求的中位响应时间为 65 毫秒,而 Go 是 32 毫秒。 - 此前我对
Go 语言毫无经验,而时间又很紧:两天内达到生产需求。 - Go
语言的语法直观、简单且洁净。我过去常与解析型语言打交道,尽管 Go 是静态类型系统的编译型语言,编写这款应用的感觉却更像是在用动态解析型语言。 - Go
语言优秀的文档也帮助了我迅速完成开发...鼓励开发者深入挖掘软件包的实现,简化了对良好编程风格与规则的掌握。
- Go官方博文
- 2011-10-19
《从 Erlang 到 CERL 到 Golang》 - ECUG2011
Q盘主页 PPT - 作者许式伟:金山高手,后到盛大创新院,现为QBox.me创始人,ECUG发起人
- Q盘QBOX.ME:服务端
99% 代码基于 Golang、累计约 10w 行 Golang 代码 - Go类型系统
- 理念:除了不推荐操作符重载外,User
Type 与内置类型没有任何区别。 - 没有隐式的类型转换、没有重载、没有继承,只有组合(匿名组合可达部分继承效果)
- Go内存管理:Gc、透明(自动选择何时使用栈,何时使用堆)
- Go非侵入性接口:代码解耦,按需定义,无需事先进行
“统筹” - 错误处理:defer;进程:goroutine;程通信:channel
- 风险:新模块可尝试Go,推荐服务端,Go变化快,小众
- ECUG2011
- 2011-11-19
《Thinking in Go》 - ECUG
Con 2011大会 演讲PPT - 作者韦光京:基金买卖网CTO。Go语言尤其是Windows平台移植的积极贡献者。
- 为什么喜欢Go:向Unix致敬、C+Python动静相宜、语法可读性强、开源、just
for fun - 一些特别地方:自动类型推导减少打字
- 非常实用工具:Gofmt格式化代码、Gofix自动更新代码、Godoc从Go代码中生成文档、Gotest
测试框架Gotest测试框架、Gotest测试框架、Goinstall下载并编译安装库 - 跨平台,交叉编译(设置GOOS,GOARCH环境变量)
- Google
App Engine支持 - 没有类的面向对象机制
- 任何类型都可以有方法,任何类型都可以是对象
- Interface强制数据和代码分离
- 继承通过嵌入来实现(Mix-in)
- 冲突的简单处理
- 动态特性:Duck
typing(Interface定义方法集合,任何类型实现了这些方法就实现了这个interface) - 反射:Interface
{} TypeOf ValueOf SetXXX - 并发:
- 语法级支持(Goroutines、Channel);
- Channel
is First class(Channel传递的消息可以是channel) - 用同步的方式来简化并发编程;
- Communicating
Sequential Processes (CSP)
- ECUG
- 2011-11-19
《golang 开发实践》 - ECUG
Con 2011大会 演讲PPT 博文 源码 - 作者邢兴:39
健康网技术副总监 - gearman
是分发任务的高效服务器框架。 - gearman-go
是用go语言写的worker API
- ECUG
- 2011-06-07
《Go编程语言,或者:为什么除了它,其他类C语言都是垃圾》 - 2011-04-21
《Go在Heroku中的应用》 - Go官方博文
(译1 译2) Doozer(介绍 源码 中文介绍) - 作者Keith
Rarick 和 Blake Mizerany:是 Heroku 的系统工程师 - 使用Doozer解决分布式系统物理服务器间的协作问题
- Doozer是用Go编写的,新的、一致性的、高可用的数据存储
- Go
原生的并发机制使得这个任务更加简单 - 垃圾回收机制改进了
malloc 和 free - goroutine
和 channel 改进基于锁的并发 - Go标准包是在
Doozer 上的另一个巨大成功 - 最喜欢的生产力提高来自于
Go的代码格式化工具:gofmt - Go静态连接意味着
Doozer 无序额外的依赖 - Go简洁的设计哲学与我们对软件工程的认识令人发狂的一致。
- 将来的项目中使用
Go 已经有了一些想法。Doozer 对于一个大系统来说只是刚刚开始。
- Go官方博文
- 2011-03-30
《关于go语言》 - 博文
- 作者:腾讯soso王益
- 这只螃蟹很好吃;向大家推荐。
- 总体感觉:语法简单、编译速度非常快、开发效率非常高
- 我从高一开始写C++程序,这么些年里对Java、Python之流是学懂了就烦了放弃了,只有对C++忠贞不二;但是用了Go之后,现在已经不想再用C++写程序了。
- 另外从多个方面谈了自己的体会:Go
vs C++、Class、Class Hierarchy、String、UTF 和 XML、STL vector 和 map、Containers、Closure 和 Callback、Multi-threading 和 Synchronization、Protocol Buffer、Go进程间通信、格式化输出、gflags、glog、HTTP Server、self-compilation、从Go调用C/C++
- 2011-03-26
《Go语言Web开发》 - 2011-02-27
《Go语言》 - 2011-02-27
《Go集成C和C++代码》
实践与评价 2010
- 2010-12-13
《beansdb 卷土重来》 - 博文
另参见 Go 语言中手动内存管理 - 作者刘洪清:豆瓣工程师
- BeansDB(豆瓣开源数据存储系统)
- 部署时的代理层用
go
- 博文
- 2010-11-18
《Go 语言初步》 云风 原文 - mix-in
的接口风格。非常接近于我在用 C 时惯用的面向对象风格 - 强类型系统。使得犯错误的机会大大降低。
- 而编写程序又有点使用
lua 这种动态语言的感觉,总之,写起来很舒服。 - 内置的
string / slice 类型,以及 gc 。这是我觉得现代编程必须的东西。 - defer
是个有趣使用的东西,用它来实现 RAII 比 C++ 利用栈上对象的析构函数的 trick 方案让人塌实多了。 - zero
初始化。我一直觉得 C++ 的构造函数特别多余。 - 包系统特别的好。而且严格定义了包的初始化过程,即
init 函数。 - goroutine
是个相当有用的设计。 - 我发现我花了四年时间锤炼自己用
C 语言构建系统的能力,试图找到一个规范,可以更好的编写软件。结果发现只是对 Go 的模仿。缺乏语言层面的支持,只能是一个拙劣的模仿。 - 学习新东西还是很累的。好在
Go 的各种设计都非常切合我的本意,所以自然是越写越舒服了。 - Go
的引用和值分得很清楚,这使它更像 C 而不是 Java ,却又提供了 C++ 提供不了的安全性。 - 用
Go 写网络程序,真是非常舒心。socket 和 file 在 interface 上的统一,暗合 Unix 之道。程序嘛,就是处理输入,产生输出。Reader 和 Writer 接口让人愉快。
- mix-in
- 2010-04-25
《Go语言: 互联网时代的C》 李兆海 - 2010-01-21
《Go Lang介绍》 余峰 原文 - 2010-01-17
《使用go语言一个月的认识》 life 原文 - 2009-11-11
《C, Erlang, Java 和 Go Web Server 性能测试》 Tim 原文
开源项目
工具系列
专题文章
数据结构
- 2010-05-28
《Google Go!》 Martin Aigner 和 Alexander Baumgartne PDF - 用图形讲解数据类型、new、make和通道
cgo
- 2011-09-26
Rob Thornton 《Experimenting with Cgo》
有疑问加站长微信联系(非本文作者)