Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Experimental Refactoring with Go

Experimental Refactoring with Go

Refactoring is essential to the software lifecycle. Can we make it safe enough to be a part of every company's CD workflow? In this talk attendees will learn how to: utilise multi-step deploys; tame feature flags; run multiple code paths concurrently in production without influencing users.

Avatar for Jelmer Snoeck

Jelmer Snoeck

August 03, 2018
Tweet

More Decks by Jelmer Snoeck

Other Decks in Programming

Transcript

  1. FIND ME github.com/jelmersnoeck twitter.com/jelmersnoeck Jelmer Snoeck ABOUT ME - Tech

    Lead at manifold.co - Kubernetes - Terraform - Gopher since 2013 - Kubelist Contributor
  2. $ tree - What and why? - Techniques & Tools

    - Zero Downtime Refactoring - Experimental Refactoring
  3. Code refactoring is the process of restructuring existing computer code

    without changing its external behavior. Wikipedia
  4. Scalability - Userbase growth (100 users to 100m users) -

    Team growth (10 developers to 500 developers) - …
  5. Refactoring Tools - Tests - Security that it still works

    - Gotests - Benchmarks - go test -bench=. - IDE - Extract methods - Find duplication easily
  6. Why use Feature Toggles? - Early Access to Features -

    Incremental roll outs to test hypothesis - Calendar Events (Mother’s day, Launches, …) - …
  7. Reading list - https://speakerdeck.com/campoy/understanding-nil - https://talks.golang.org/2016/refactor.article - https://dave.cheney.net/2013/06/30/how-to-write-benchmarks-in-go - https://github.com/cweill/gotests

    - https://github.com/github/scientist - https://github.com/jelmersnoeck/experiment - http://featureflags.io/ - https://github.com/launchdarkly/go-client - https://github.com/checkr/flagr