您的位置:首页 > 编程语言 > Go语言

Go语言资料收集

2013-05-04 22:38 211 查看


说明

发布站点 GitHub CSDN 新浪
最后更新 2012-03-31 Go1正式发布,更新相关资料,详见 变更记录
缘起说明 想学习称手的新语言,发现Go后非常感兴趣,也把接触到的一些资料整理共享出来。
     资料若有错误或缺漏,或者大家有更好的建议,欢迎 邮件联系 可看 已收集建议
收集原则 尽量收集原创链接,有时会记录一些学习心得,或摘录一些启发自己的原文
     如果同学们觉得内容还有点帮助,欢迎转载,指明原始出处更好,谢谢! (^_^)
     
 注意  Go1变化较大,网上相关翻译文章可能未及时更新,请以官方英文为主。
 


网址导航

 


搜索引擎

官网搜索 点这里 搜索官网上的代码和内容(搜索框在右上角)

catv搜索 点这里 搜索Go官网、项目、论坛和cat-v网(资源很多,如IRC日志等)

 


官方资源

 

版本安装

官网首页  (发布版 weekly)
安装说明  (发布版 weekly  下载)
Release版 (源码 历史 发布2012-03-28 Go1 基于 weekly2012-03-27 宣布帖)
      Go1相关文档(宣布博文- 发版说明 兼容说明)
      Go1早期文档(博文 计划 反馈帖)
Weekly版  (源码 历史 发布2012-03-27 宣布帖)
Build状态 (查看)
GAE-SDK (下载 发布 2012-03-29 1.6.4 宣布博文- 宣布帖)

 

参考手册

标准包  (发布版 weekly )
命令工具 (发布版 weekly 译1 译2)
语言规范 (发布版 weekly 译1 译2)
社区项目 (分类查看)

 

学习资料

官方博客 (网址)
社区Wiki (网址)
常见问题 (发布版 weekly )
Go在线运行 (运行分享 chrome插件)
Go语言之旅 (英文版 源码 译1 译2 中文版)
Go语言有效编程 (发布版 weekly 译1 译2 译3)
如何编写Go程序 (发布版 weekly 译1 译2)
关于Go命令 (发布版 weekly)
语言内存模型  (发布版 weekly )
使用GDB调试Go代码 (发布版 weekly)
Codewalks:代码漫步 (发布版 weekly)
用Go开发GAE (概述- 入门介绍 简明教程 运行时环境)

 

项目开发

Go项目   (首页 Build状态 源码浏览 提交日志 贡献准则 贡献人员)
Go问题   (提交 所有 Windows 需外界帮助)
gccgo前端 (首页 安装使用 贡献说明)

 

邮件列表

golang-nuts         (讨论用Go开发)
golang-china        (讨论用Go开发,都是中文兄弟)
golang-dev          (讨论Go自身开发)
golang-checkins     (汇集Go提交信息)
golang-announce     (Go版本发布的通知)
google-appengine-go (讨论GAE的Go支持)

 

其他资源

IRC讨论频道 
@go_nuts at Twitter
google+

 


cat-v

书籍 文章 讲演 IRC日志

相关开发工具

支持Go的编辑器

用Go开发的产品

用cgo绑定的C库

用Go直接开发的库

使用Go的组织

各方人士评价Go开发

大学Go培训课程情况

Go语言其他实现

Go支持的CPU架构

Go支持的操作系统

各操作系统下的安装包

 


网站

Reddit投票

Stackoverflow问答

Go语言Wiki

Go语言中文翻译项目

ac-me

Go语言中文论坛

Go程式語言學習園地

Gopher Times

 


博客

邢兴 柴树杉 HowardFan 云风 许式伟 lvyi BianJiang DCCMX monnand

刘洪清 贝塔熊 Linxs 科技博 陈钢 王益 Crane 无心云 AllenDang

 


新闻资料

 


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年

2009-11-12 Go语言源码的一个改动 博文

2011-11-11 Go 语言:Google 的新编程语言 博文 新闻

 


官方资料

 


官方博文

 

语言

2011-07-12 错误处理和Go 原文(译1 译2)
2011-05-25 一个GIF解码器:Go接口的使用 原文
2011-01-05 Go的切片:用法和内幕 原文
2011-09-23 Go的并发模式:超时、继续 原文()
2010-08-04 Defer、Panic 和 Recover 原文(译1 译2)
2010-07-07 Go的声明语法 原文()
2010-04-27 JSON-RPC:接口的传说 原文

 

2011-09-29 Go的image/draw包 原文
2011-09-21 Go的image包 原文
2011-09-06 反射法则 原文()
2011-03-24 数据的Gobs 原文(译1 译2)
2011-01-25 JSON和Go 原文

 

工具

2011-06-24 Go程序性能分析 原文
2011-03-31 Godoc:文档化 Go 代码 原文(译1 译2)
2011-03-17 C? Go? Cgo! 原文()

 

2012年其他博文

2011-03-28 Go版本1发布 原文()

 

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)

 

2010年其他博文

2010-11-02 调试Go程序(状态报告) 原文()
2010-10-19 实际的Go项目:SmartTwitter和web.go 原文( 作者)
2010-07-13 用通讯来共享内存 原文()
2010-04-20 第三方库:goprotobuf 和更多 原文

 


社区Wiki

 


讲演视频

用Go写web程序 优酷视频 优酷视频 YouTube视频
Rob Pike 和 Andrew Gerrand 在 Google I/O 2011 大会上的谈话
回顾一个简单web应用的架构和开发,揭示 GAE 上的 Go实现

现实中的Go语言 PDF 土豆视频
Andrew Gerrand 在 在Google I/O 2011 训练营(Boot Camp)上的谈话
概述了Go语言的类型系统和并发模式,并提供四个用Go程序解决实际问题的案例

Go语言编程 优酷视频 YouTube视频
Rob Pike 和 Russ Cox 在 Google I/O 2010 大会上的演讲
通过一些表现Go语言特性的样例,揭示了Go与其他语言的不同
内容涉及并发、内置类型、方法和其他类型、通过接口构建程序

Go语言编程实践 幻灯 优酷视频
谈及使用Go语言开发一个完整的web应用
通过一个简单的短地址服务,揭示设计、存储、并发、扩展性等细节

Go语言技术座谈 PDF 优酷视频(英文字幕) YouTube视频 相关新闻
Rob Pike 2009年10月在google的一次四小时演讲
Go语言的第一次公开介绍,这以后Go语言不断在发展改变,但这次介绍依然是出色的

YouTube上的Go编程频道 频道
编写、编译、发布Go包 YouTube视频 优酷视频
编写Go的单元测试和基准测试 YouTube视频

富于表现力的Go语言 PDF
Rob Pike 在 2010 JAOO 大会上的演讲
谈到 Go 语言富于表现力,又容易理解

不同设计的Go语言 演讲介绍 PDF 优酷视频 Pike在56:19时出现
Rob Pike 在2010开源技术大会上的演讲
为不了解Go语言的听众,提供的教程,介绍Go语言相关背景和重要特性。

Public Static Void 演讲介绍 PDF 优酷视频
Rob Pike 在2010开源技术大会上的演讲
反思面向对象的编程

新兴语言Go的演讲 演讲介绍 PDF
Rob Pike 在2010开源技术大会上,对新兴语言Go的演讲
摘要:Go在并发性上和大多数语言都不同,即便是以并发为中心的Erlang等。 回顾了从Hoare的1978年论坛到Go的历程,深刻介绍Go怎样以及为什么这样做

Go语言的GCC前端 PDF
Ian Lance Taylor 在 GCC 2010 峰会上的演讲
谈到了对GCC的Go语言前端

Go语言的宣传视频 优酷视频 YouTube视频
Russ Cox 演示Go语言的快速编译

 


开发团队

Ken Thompson 百度百科
Unix之父,1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。
是Unix操作系统、Plan9操作系统、UTF-8编码和B编程语言(C的前身)的创立者之一。
94年底跑到莫斯科开米格29战机,然后2000年从贝尔实验室正式退休全职飞行。2007年加入谷歌

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 项目

 


其他资料

 


书籍教程

2011-11-22 《Go Book》Miek Gieben 书籍: 原文网址 源文件
作者: Yuuta (博客)

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来实现。你还要啥自行车呢?
 效率!它是个编译语言!它要有效率!

2011-12-19 《使用Go开发StatHat》
Go官方博文 开源模块
作者Patrick Crosby:是 Numerotron 公司开发者
从多方面详细探讨使用Go的原因:
 前后端统一、好和快速的模版、快速开发编译测试、大并发支持、高性能、RPC、标准库、开源

2011-12-13 《Google 主页“火鸡”应用开发纪实》
Go官方博文 (译) 源码
作者Reinaldo Aguiar:是Google 搜索团队软件工程师
App Engine runtime 选型:图像处理任务极度依赖 CPU...性能是决定性因素。
Python 2.7 应用处理请求的中位响应时间为 65 毫秒,而 Go 是 32 毫秒。
此前我对 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变化快,小众

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)

2011-11-19 《golang 开发实践》
ECUG Con 2011大会 演讲PPT 博文 源码
作者邢兴:39 健康网技术副总监
gearman 是分发任务的高效服务器框架。
gearman-go 是用go语言写的worker API

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 对于一个大系统来说只是刚刚开始。

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开发》
沙龙 slide幻灯
作者:韦光京

2011-02-27 《Go语言》
沙龙 slide幻灯
作者:韦光京
对分布式和多核的支持
动静皆宜、编译飞快、语法很简单、关键字只有25个
非常棒的并发支持、出色的包支持、没有类的继承
Google只有一点影响到Go,而且这个影响非常正面
Google的开发模式:codereview机制

2011-02-27 《Go集成C和C++代码》
沙龙 slide幻灯 PDF下载
作者:柴树杉

 


实践与评价 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 接口让人愉快。

2010-04-25 《Go语言: 互联网时代的C》 李兆海
slide幻灯
沙龙 优酷视频
OpenParty 酷6视频

2010-01-21 《Go Lang介绍》 余峰 原文

2010-01-17 《使用go语言一个月的认识》 life 原文

2009-11-11 《C, Erlang, Java 和 Go Web Server 性能测试》 Tim 原文

 


开源项目

 


工具系列

2011-12-27 密码生成器 PwdGen
讨论帖 项目主页
作者:柴树杉
针对CSDN等很多网站保存明文密码的问题,开发的密码生成工具
主要用于对每个不同网站或ID随机生成不同的密码.

 


专题文章

 


数据结构

2010-05-28 《Google Go!》 Martin Aigner 和 Alexander Baumgartne PDF
用图形讲解数据类型、new、make和通道

 


cgo

2011-09-26 Rob Thornton 《Experimenting with Cgo》
2011-09-26 Part 1
2011-10-03 Part 2
2011-10-22 Part 3:Errno
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: