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.

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