A better way to learn refactoring
-
Upload
rafael-sperling -
Category
Technology
-
view
273 -
download
2
description
Transcript of A better way to learn refactoring
![Page 1: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/1.jpg)
A Better Way To Learn Refactoring
@rafael_sperling
![Page 2: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/2.jpg)
@rafael_sperling
![Page 3: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/3.jpg)
● 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](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/4.jpg)
● Single-Line Statements● Block Statements● Methods● Classes
Different Levels of Refactoring
@rafael_sperling
![Page 5: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/5.jpg)
● 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](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/6.jpg)
● 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](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/7.jpg)
@rafael_sperling
Eliminate Duplicate Write Lines Calls
![Page 8: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/8.jpg)
@rafael_sperling
Eliminate Duplicate Write Lines Calls
![Page 9: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/9.jpg)
@rafael_sperling
Extracted isFuzzi and isBuzzi Variables
![Page 10: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/10.jpg)
@rafael_sperling
Invert IF Statements
![Page 11: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/11.jpg)
@rafael_sperling
Extract Display Actual Number Method
![Page 12: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/12.jpg)
@rafael_sperling
Extracted Run Method
![Page 13: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/13.jpg)
@rafael_sperling
Moved FizzBuzz Region Into Separate Class
![Page 15: A better way to learn refactoring](https://reader033.fdocuments.us/reader033/viewer/2022042713/5483300ab07959650c8b499c/html5/thumbnails/15.jpg)
Referenceshttps://vimeo.com/43659053
@rafael_sperling