A better way to learn refactoring

Post on 05-Dec-2014

276 views 2 download

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!

rafaelsperling@gmail.com

Referenceshttps://vimeo.com/43659053

@rafael_sperling