Go Wiki:Go 讲座

查看 http://talks.golang.org,了解一些讲座的演示文稿。如需全面、精选且可搜索的索引,请尝试 Damian Gryski 的 GopherVids

官方

介绍性讲座

Go 简介。

Russ Cox 的 Go 之旅

[视频和讨论]

让 Go 变得快速、有趣且高效的三件事:接口、反射和并发。构建一个玩具网络爬虫来演示这些内容。

Go:一个简单的编程环境

[视频] [另一个视频] [幻灯片]

Go 是一种通用语言,弥合了高效静态类型语言和高效动态语言之间的差距。但不仅仅是语言让 Go 与众不同 - Go 拥有广泛且一致的标准库以及强大但简单的工具。

本讲座将介绍 Go,然后展示一些真实的程序,演示 Go 编程环境的强大功能、范围和简单性。

开始使用 Go

[视频]

在此会话中,我们将介绍语言及其标准库和工具,其中我们将介绍 Go 的安装和一些简单但有用的程序的编写。

Go 编程

[视频] [代码]

Rob Pike 和 Russ Cox 在 Google I/O 2010 上发表的演讲。它通过一系列演示 Go 特有功能的示例来说明 Go 中的编程如何不同于其他语言。这些功能包括并发、嵌入式类型、任何类型上的方法以及使用接口的程序构建。

Go 技术讲座

[视频] [幻灯片]

Rob Pike 于 2009 年 10 月在 Google 发表的一小时演讲。该语言的首次公开介绍。自该语言问世以来已经发生了变化,但它仍然是一个很好的介绍。

Go 中的开发

在 Go 中编写 Web 应用

[视频] [幻灯片]

Rob Pike 和 Andrew Gerrand 在 Google I/O 2011 上发表的演讲。它介绍了简单 Web 应用程序的构建和部署,并展示了App Engine 的 Go 运行时

真实的 Go

[视频] [幻灯片]

Andrew Gerrand 在 Google I/O Bootcamp 2011 上发表的演讲。它对 Go 的类型系统和并发模型进行了广泛的概述,并提供了四个解决实际问题的 Go 程序示例。

在 Google 云平台上构建集成应用

[视频]

Andrew Gerrand 在 Google 开发者日日本 2011 上发表的演讲。它讨论了在 Google App Engine 上运行并渲染其存储在 Google Cloud Storage 中的射线追踪的 Web 应用程序的开发。

App Engine 上使用 Go 的高性能应用

Google I/O,2013 年 5 月

[视频] [幻灯片]

实用 Go 编程

[视频] [幻灯片] [代码]

此演讲介绍了在 Go 中开发完整的 Web 应用程序。它详细探讨了设计、存储、并发和扩展问题,并以 URL 缩短服务这个简单的示例来说明。

Go 中的词法扫描

[视频]

Rob Pike 的 GTUG 演讲讨论了词法扫描仪的详细设计,该扫描仪使用 Go 的功能进行富有表现力的组合。(关于在初始化时避免 goroutine 的讨论已过时:Go 1 允许在 init 函数中使用 goroutine,因此额外的复杂性是不必要的。)

生产中的 Go

Google I/O,2012 年 6 月

[视频]

自 2009 年 Go 发布以来,许多公司(当然除了 Google 之外)都使用该语言来构建酷炫的东西。在此会话中,来自多家公司的程序员将分享他们在生产环境中使用 Go 的第一手经验。

Go:优雅增长的代码

[视频] [幻灯片]

Go 编程语言的关键设计目标之一是代码适应性;它应该可以轻松地采用一个简单的设计,并以干净自然的方式对其进行构建。在此演讲中,我将描述一个简单的“聊天轮盘”服务器,它匹配传入 TCP 连接对,然后使用 Go 的并发机制、接口和标准库对其进行扩展,并添加 Web 界面和其他功能。尽管程序的功能发生了巨大变化,但 Go 的固有灵活性允许原始设计在增长时保持不变。

实现大数字计算器

[视频] [幻灯片]

Rob Pike 描述了他为类似 APL 的计算器语言设计的解释器。

Go 中的 Go

[视频] [幻灯片]

Rob Pike 谈到了将 Go 工具链从 C 迁移到 Go

Go 中的并发

Go 并发模式

Google I/O,2012 年 6 月

[视频]

高级并发模式

[视频] [幻灯片]

Google I/0,2013 年 5 月

并发是设计高性能网络服务的关键。此演讲扩展了去年流行的 Go 并发模式演讲,深入探讨 Go 的并发原语,并了解如何使用简单的 Go 代码优雅地解决棘手的并发问题。

Go 的设计

Go 的表现力

[幻灯片]

讨论让 Go 成为一种富有表现力和易于理解的语言的品质。该演讲由 Rob Pike 在 JAOO 2010 上发表。由于硬件错误,该活动的录制已丢失。

另一种语言设计

[视频来自悉尼大学] [幻灯片]

对 Go 的主要功能进行的游览,并附有一些背景信息,适用于对该语言不熟悉的人群。该演讲在 OSCON 2010 上发表。该演讲还于 2010 年 9 月在悉尼大学发表。

Go 新兴语言大会演讲

[视频] [幻灯片]

Rob Pike 于 2010 年 7 月发表的新兴语言大会演讲。演讲摘要

Go 对并发性的处理方式与许多语言不同,即使是那些(如 Erlang)将并发性作为核心的语言,但它有深厚的根源。从 Hoare 的 1978 年论文到 Go 的路径提供了 Go 如何以及为何像现在这样工作的见解。

Go 的状态

2014 年 6 月

[视频] [幻灯片]

2015 年 2 月

[视频] [幻灯片]

2015 年 5 月

[视频] [幻灯片]

其他

GCC 的 Go 前端

[论文]

gcc 的 Go 语言前端的描述。Ian Lance Taylor 在 GCC 峰会 2010 上发表的论文。

Go 宣传视频

[视频]

一段简短的宣传视频,展示了 Russ Cox 演示 Go 的快速编译器。

认识 Go 团队

Google I/O,2012 年 6 月

[视频]

与 David Symonds、Robert Griesemer、Rob Pike、Ken Thompson、Andrew Gerrand 和 Brad Fitzpatrick 的小组讨论。

与 Go 团队的炉边谈话

Google I/0,2013 年 5 月

[视频]

与 Andrew Gerrand、Brad Fitzpatrick、David Symonds、Ian Lance Taylor、Nigel Tao、Rob Pike、Robert Griesemer、Sameer Ajmani 的炉边谈话。

Gopher 的状态

[视频] [幻灯片]

非官方

社区成员的演讲。

开始使用 Go,或 Go 简介

[视频(从 14:35 开始)] [幻灯片] [源代码]

此演讲用俄语介绍了 Go。

什么是 Go 模块,我该如何使用它们?

Paul JollyLondonGophers

[视频] [幻灯片]

Go 1.11 中还有什么

Daniel MartìLondonGophers

[视频] [幻灯片]

Go 1.11 版本的抢先预览

使用 WebAssembly 开始行动

Johan BrandhorstLondonGophers

[视频] [幻灯片] [wasm 代码] [grpc 代码]

在此演讲中,Johan 向你介绍了 Go 1.11 中的 WebAssembly 端口,以及它在处理 JavaScript 疯狂时如何提供帮助 :)

Go 和 Mongo - 以及它如何改变

DJ Walker-MorganLondonGophers

[视频] [幻灯片]

使用 Go 构建一个简单的并发教学语言

Nicholas NgLondonGophers

[视频] [幻灯片]

在本次演讲中,Nicholas 介绍了为教授并发理论(进程演算)而设计的一种简单语言的设计和实现,该语言使用 Go 实现。他介绍了实现中使用的一些 Go 静态分析工具,并展示了如何使用这些工具!

介绍 Remoto

Mat RyerLondonGophers

[视频]

Mat 分享了一个新项目的首次展示,该项目旨在简化构建 RPC 服务。gRPC 不适合客户端(尤其是 Web),而 RESTful 设计有时会导致令人困惑的 API。Remoto 允许您使用 Go 接口定义服务,并生成构建和使用该服务所需的一切。

Go Swagger

Simone TrubianLondonGophers

[视频]

Simone 概述了 Go Swagger 命令行工具,并简要解释了他如何使用该工具来提高设计 REST API 的效率。

Go 中的 ORM

Renato Serra 在 LondonGophers

[视频]

Renato 解释了 ORM 在哪些方面可以提供帮助,有哪些选项,以及使用 ORM 的体验如何。

Go 代码中的未使用参数

Daniel MartìLondonGophers

[视频] [幻灯片]

Daniel 讨论了如何使用 SSA 和调用图编写强大的代码分析工具。具体来说,他演示了如何检测函数中的未使用参数。

谎言、该死的谎言和基准

Amnon 在 LondonGophers

[视频] [幻灯片]

Amnon 讨论了为什么微基准测试可能会误导优化实际系统,为什么数据布局通常比代码结构更重要,以及 Go 如何帮助我们追求性能。

从头开始调试

Liz RiceLondonGophers

[视频] [幻灯片] [代码]

Liz 通过用几行 Go 代码构建一个调试器来解释调试器的工作原理。这包括 Go 源代码和编译成的机器代码指令之间的映射,以及使用 ptrace 系统调用来设置断点并检查和修改正在运行的进程。

使用 SDL 的快速分形乐趣

Sue SpenceLondonGophers

[视频] [幻灯片] [代码]

创建图像(例如 Mandelbrot 和 Julia 集)的 Go 程序通常会输出一个图像文件。我将展示如何使用 Simple Directmedia Layer 库的 Go 绑定将它们输出到显示设备上。

并发:从 Ruby 到 Go 的旅程

Mathilda ThompsonLondonGophers

[视频]

多语言环境中的 Go

Kevin McKelvinLondonGophers

[视频]

在这次演讲中,Kevin 讲述了他采用 Go、转向多语言环境、成功与挑战的经历,以及 Go 如何融入他公司的整体架构和战略。

交付 Go 服务

Zak KnillLondonGophers

[视频]

交付 Go 服务:在向你的公司介绍 Go 并部署你的第一个 Go 服务之后。下一步是什么?本次演讲重点介绍了接下来的一些事情,涉及传说中的“在 X(10、20、30)分钟内将新服务投入生产”,以及在此过程中遇到的一些陷阱。

Go-ing Lambda

大卫·布鲁曼LondonGophers

[视频]

Go-ing Lambda - 一年的生产:我们(FundApps)如何在 lambda 函数中使用 Go 构建服务,用于导入/抓取/解析数据,以便在之上构建金融服务的 API。Go 中的 lambda 函数的提示和技巧、限制、性能和使用 Apex 框架。

RED 方法

汤姆·威尔基LondonGophers

[视频]

我们还将专门设置一个部分,供那些正在招聘或希望获得聘用的人员使用(如果我们像上次一样错过了,请不要害怕提醒我们)。

滥用 Go 的 net 包以获取乐趣和利润

米哈乌·维特科夫斯基LondonGophers

[视频]

此讨论详细介绍了 Go 的基于组合的理念如何应用于 net 包,以及如何创造性地利用该理念来实现美观且有用的黑客技术,从而显著增强堆栈的功能。我们将探索 net.Conn,以及如何以创造性方式(滥)用它们。我们将深入了解 net/http,并探讨如何创造性地使用 http.Handler 和 http.Roundtripper 接口来构建有用的中间件。然后,我们将更深入地研究 net/http 内部结构以及它们与 tls.Conn 和 x/net/http2 的关系,以了解它们的工作原理,并利用这些知识演示我们一些最漂亮的黑客技术。

2018 年的 stringer

Daniel MartìLondonGophers

[视频] [幻灯片]

2018 年的 stringer - 演示你可能从未听说过的新功能。


此内容是 Go Wiki 的一部分。