a better way to learn refactoring

15
A Better Way To Learn Refactoring @rafael_sperling

Upload: rafael-sperling

Post on 05-Dec-2014

273 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: A better way to learn refactoring

A Better Way To Learn Refactoring

@rafael_sperling

Page 2: A better way to learn refactoring

@rafael_sperling

Page 3: A better way to learn refactoring

● Long Method● Large Class● Primitive Obsession● Long Parameter List● DataClumps● Switch Statements● Temporary Field● Refused Bequest● ...

Bad Code Smell Examples

@rafael_sperling

Page 4: A better way to learn refactoring

● Single-Line Statements● Block Statements● Methods● Classes

Different Levels of Refactoring

@rafael_sperling

Page 5: A better way to learn refactoring

● Extract method for only one responsability● Eliminate duplication through

decomposition● Allow for decomposition without

drawbacks of duplication

The Ultimate Goal for Refactoring

@rafael_sperling

Page 6: A better way to learn refactoring

● 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

Page 7: A better way to learn refactoring

@rafael_sperling

Eliminate Duplicate Write Lines Calls

Page 8: A better way to learn refactoring

@rafael_sperling

Eliminate Duplicate Write Lines Calls

Page 9: A better way to learn refactoring

@rafael_sperling

Extracted isFuzzi and isBuzzi Variables

Page 10: A better way to learn refactoring

@rafael_sperling

Invert IF Statements

Page 11: A better way to learn refactoring

@rafael_sperling

Extract Display Actual Number Method

Page 12: A better way to learn refactoring

@rafael_sperling

Extracted Run Method

Page 13: A better way to learn refactoring

@rafael_sperling

Moved FizzBuzz Region Into Separate Class

Page 14: A better way to learn refactoring

Thanks!

[email protected]

Page 15: A better way to learn refactoring

Referenceshttps://vimeo.com/43659053

@rafael_sperling