a better way to learn refactoring
DESCRIPTION
TRANSCRIPT
A Better Way To Learn Refactoring
@rafael_sperling
@rafael_sperling
● Long Method● Large Class● Primitive Obsession● Long Parameter List● DataClumps● Switch Statements● Temporary Field● Refused Bequest● ...
Bad Code Smell Examples
@rafael_sperling
● Single-Line Statements● Block Statements● Methods● Classes
Different Levels of Refactoring
@rafael_sperling
● Extract method for only one responsability● Eliminate duplication through
decomposition● Allow for decomposition without
drawbacks of duplication
The Ultimate Goal for Refactoring
@rafael_sperling
● For every number from 0 to 100,○ If it is divisible by 3, print "Fizz",○ If it is divisible by 5, print "Buzz",○ If it is divisible by 3 and 5, print "FizzBuzz"
FizzBuzz & The Art of Refactoring
@rafael_sperling
@rafael_sperling
Eliminate Duplicate Write Lines Calls
@rafael_sperling
Eliminate Duplicate Write Lines Calls
@rafael_sperling
Extracted isFuzzi and isBuzzi Variables
@rafael_sperling
Invert IF Statements
@rafael_sperling
Extract Display Actual Number Method
@rafael_sperling
Extracted Run Method
@rafael_sperling
Moved FizzBuzz Region Into Separate Class
Thanks!
Referenceshttps://vimeo.com/43659053
@rafael_sperling