Designed for programmers familiar with the basics of Go, this course is an information-rich followup to Introduction to Go Programming. After a quick review of the basic Go syntax—with an emphasis on tricky areas and less common usage—expert programmer John Graham-Cumming delves into Go's build tool and more complex uses of slices, channels, goroutines, interfaces, and methods.
The video shows how to build a simple JSON API that talks to a database, and how to build a flexible system for using goroutines to do work concurrently. Tips on how to write idiomatic Go, vendoring, and mocking for unit tests are also covered.
- Play with Go’s build tool and do workspace layouts, test and race detection, and more
- Learn how slices are implemented and how to think about them
- Unravel how Go handles garbage collection and reduction
- Deep-dive into Go’s methods, method values, and interfaces
- Learn how Go interfaces provide powerful ways to mock parts of code for unit testing
- Discover how to optimize code for speed by using the Go profiler
- Review Go's packages for dealing with databases, including interfacing to SQLite
John Graham-Cumming is a computer programmer and author. He studied mathematics and computation at Oxford and has a doctorate in computer security. As a programmer, he has worked in Silicon Valley and New York, the UK, Germany, and France, and currently works at CloudFlare.
Table of Contents
- Syntax Recap 00:53:10
- Go's build tool 00:12:44
- Comparison 00:12:44
- Slices 00:06:31
- Garbage collection and garbage reduction 00:14:55
- Methods and Interfaces 00:10:21
- Interfaces for mocking in unit tests 00:05:41
- Concurrency 00:17:35
- Lesser known Go tools 00:04:31
- Using the Go profiler to optimize code for speed 00:08:25
- Idiomatic Go 00:17:14
- Package management and vendoring approaches 00:04:19
- Building a scalable work system 00:15:31
- Talking to a database in Go 00:06:19
- Serving a JSON API using Go 00:09:48
- Title: Intermediate Go Programming
- Release date: December 2015
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781491944073