Brussels / 1 & 2 February 2014


Interfaces: a new leaf for an old book

This talk is about how we can use interfaces in Go to write testable code that can be easily modified, or "grows with grace".

Go's interfaces — static, checked at compile time, dynamic when asked for — are, for me, the most exciting part of Go from a language design point of view. If I could export one feature of Go into other languages, it would be interfaces.

Russ Cox

We'll cover the following topics:

  • Taking advantage of Go's automatically satisfied interfaces
  • Choosing third-party packages that are easy to extend for your own purposes
  • How interfaces are used in Go's standard library
  • A look at the internals.

There will be a mixture of practices I've seen used in third-party packages and the standard library, and also some I've successfully applied to our own large codebase.


Matthew Cottingham