FIND ME
github.com/jelmersnoeck
twitter.com/jelmersnoeck
Jelmer Snoeck
ABOUT ME
- Tech Lead at manifold.co
- Kubernetes
- Terraform
- Gopher since 2013
- Kubelist Contributor
Slide 3
Slide 3 text
$ tree
- What and why?
- Techniques & Tools
- Zero Downtime Refactoring
- Experimental Refactoring
Slide 4
Slide 4 text
Photo by Dan Gold on Unsplash
Refactoring
Slide 5
Slide 5 text
Code refactoring is the process of
restructuring existing computer code
without changing its external behavior.
Wikipedia
Slide 6
Slide 6 text
Refactoring is a controlled technique for
improving the design of an existing code
base.
Martin Fowler
Slide 7
Slide 7 text
Refactoring is changing things, deploying
it and hoping it didn’t break anything
else.
Most Developers
Slide 8
Slide 8 text
Photo by Emily Morter on Unsplash
Why
Slide 9
Slide 9 text
Photo by Alfons Morales on Unsplash
Readability
Slide 10
Slide 10 text
Photo by Anton Darius on Unsplash
Code smells
Slide 11
Slide 11 text
Code smells
- Duplication
- Feature envy
- Large methods
- Dead code
- …
Slide 12
Slide 12 text
Photo by Glen Carrie on Unsplash
Bugs
Slide 13
Slide 13 text
Product Changes
Photo by Chris Lawton on Unsplash
Product changes
Slide 14
Slide 14 text
Product changes
- New features
- Modify existing features
- …
Slide 15
Slide 15 text
Photo by Nainoa Shizuru on Unsplash
Performance + scalability
Slide 16
Slide 16 text
Performance
- Change of underlying package
- Change of underlying algorithm
- …
Slide 17
Slide 17 text
Scalability
- Userbase growth (100 users to 100m users)
- Team growth (10 developers to 500 developers)
- …