3. ● Long Method
● Large Class
● Primitive Obsession
● Long Parameter List
● DataClumps
● Switch Statements
● Temporary Field
● Refused Bequest
● ...
Bad Code Smell Examples
@rafael_sperling
4. ● Single-Line Statements
● Block Statements
● Methods
● Classes
Different Levels of Refactoring
@rafael_sperling
5. ● Extract method for only one responsability
● Eliminate duplication through
decomposition
● Allow for decomposition without
drawbacks of duplication
The Ultimate Goal for Refactoring
@rafael_sperling
6. ● 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