monnand edited this page May 6, 2013 · 42 revisions

Go语言资料收集

说明

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

网址导航

搜索引擎

  • 官网搜索 点这里 搜索官网上的代码和内容(搜索框在右上角)
  • catv搜索 点这里 搜索Go官网、项目、论坛和cat-v网(资源很多,如IRC日志等)

官方资源

cat-v

网站

博客

新闻资料

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:接口的传说 原文
  • 工具
  • 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 )
  • 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语言 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

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

实践与评价 2010

  • 2010-12-13 《beansdb 卷土重来》
  • 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》 李兆海
  • 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随机生成不同的密码.

专题文章

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.