Go Programming Design Patterns

Go Programming Design Patterns
 © Robert Zaremba https://zaremba.ch
 

Abstract

This article lists interesting videos and learning materials to master the programming design patters.

Best practices

  1. Must watch: Best Practices for Industrial Programming - GopherCon EU 2018, Peter Bourgon
  1. API: Going GraphQL: GopherCon UK 2018 - Christopher Biscardi.
  1. I’m a big fun of GraphQL, it solves many, repeatable problems with API design, serialization etc…  
  1. What is a name? - great talk about how to name your things. Slides.
  1. Notes on learning Go and computer systems.

Error Handling
  1. Errstack library - a simple, yet powerfull library which will enables error composability, inspection and introduces error kinds (eg infrastructure error vs request error).
  1. Inspecting Errors - Dave Cheney
  1. Error handling in Upspin  - Rob Pike

Project organization & management

  1. Versioning and dependency management - GopherConSG 2018 Opening keynote: Go with Versions
  1. How Do You Structure Your Go Apps? GopherCon 2018 - Kat Zien

Testing

  1. Component & Integration Tests for Micro-services: GopherCon UK 2018 - Dmitry Matyukhin
  1. Writing Microservice Integration Tests in Go (Finally) - GopherCon SG 2019
  1. Advanced Testing Techniques: GopherCon UK 2019: Alan Braithwaite. Slides.

Polymorphism

  1. Will contracts replace interfaces? GopherCon Israel 2018

Concurrency

  1. Rethinking Classical Concurrency Patterns - GopherCon 2018, Bryan C. Mills
  1. A channel compendium [slides] by Cloudflare
  1. Go Concurrency Patterns - Rob Pike