#2 Intermediates - Writing and testing Go production code

  • You have a good overview of what is Go but you have not used it much in production systems, and/or you have not leveraged yet all its package and powerful features as a language and ecosystem.

    You want to start learning and/or improve your Test Driven Development in Go.

    Ideally, you have completed workshop 1 and/or have an equivalent experience.

  • You will learn to use less code to produce more robust production implementations.

    We will leverage the standard Go library and it most important packages to the fullest, learning common and useful techniques and patterns along the way.

    You will become a proficient Go tester of your own code.

  • During this 2 days workshop, we will build together our own application with production quality code.

    The application built will be multi faceted to allow for the learning of various powerful and common Go techniques, and therefore going over the most important and useful part of the Go standard library.


    As of today, the Go ecosystem requires great knowledge in testing your own code! So throughout the workshop we introduce and teach you how to test drive your features professionally.

What you will learn to apply

Test Driven Development

Throughout our workshop most of our features will be implemented using TDD techniques. We will introduce and explained how best to do that in Go using the standard library.

Master testing packages

We will learn how to leverage the various testing/benching package and concepts provided by the standard library. Automated/scoped cleanups, closure/scope data setup, temporary data, etc.

Robust and easy integration testing

Learn how Go has rendered third party, HTTP servers & clients testing a breeze.

We will build our own APIs and client in order to understand all the ways how to deal tests our HTTP services.

IO package composition

By building our own hasher program, we will learn one of the most important aspect of Go: IO composition.

Concurrency

By mimicking our own miner we will learn the necessary building blocks of various packages used for concurrency.

Professional Go tips & tricks

Going over packages, let’s learn some useful and underused techniques that will make your code shorter and simpler!

Error management

How to simply handle errors and design encapsulated errors APIs. We will learn also what good logging is and errors wrapping.

HTTP APIs and JSON

We cover all there is to know about the standard library when it comes to JSON APIs as well as simple HTTP tracing, monitoring and race detection.

Design patterns in Go

We will learn important design patterns (GoF), how to apply them in Go and how they make your code more open for modifications.