Agile Software Development: Refactoring
1h 31mIntermediate2019-02-01
Authors

Richard Kasperowski
Author, Speaker, Teacher, and Coach focused on high-performance teams
Course details
Refactoring code is a key responsibility of software developers. It helps you develop quality code—the foundation you need to react quickly to change, add new features, and ship high-performance products. This course teaches the basics of refactoring, tailored for agile development. Instructor Richard Kasperowski helps you set up a test-driven development environment and walks through basic refactoring techniques: the rename variable, extract, and inline methods. In chapter two, he explains how to stabilize legacy code with outstanding technical debt—inefficiencies and errors introduced as the result of careless programming. Then he uses refactoring to simplify code, remove duplication, and build more reusable objects. Finally, he shows how refactoring complements an agile workflow, by demonstrating how to quickly add a new feature to the simplified codebase.
Learning objectives
Defining refactoring
Setting up a test-driven development environment
Renaming variables
Using the extract method
Pinning down legacy code
Testing code and branch coverage
Refactoring legacy code
Simplifying math and Booleans
Adding new behaviors to refactored code
Learning objectives
Defining refactoring
Setting up a test-driven development environment
Renaming variables
Using the extract method
Pinning down legacy code
Testing code and branch coverage
Refactoring legacy code
Simplifying math and Booleans
Adding new behaviors to refactored code
Skills covered
Agile Software DevelopmentIntroduction toDevOps
Concepts
0. Introduction
- 01 - Refactoring for better code
- 02 - What you need to know
1. Refactoring with New Code
- 03 - What is refactoring
- 04 - Test-driven development (TDD)
- 05 - Code kata
- 06 - Setting up the new code kata
- 07 - Setting up the TDD environment
- 08 - Refactoring - Rename Variable
- 09 - Micro-refactoring
- 10 - Refactoring - Inline Code
- 11 - Code kata - Continue solving the problem
- 12 - Refactoring - Extract Method
2. Stabilizing Legacy Code
- 13 - Technical debt - Why it s a problem
- 14 - Setting up the legacy code kata
- 15 - Methodology
- 16 - Start writing pin-down tests
- 17 - Complete writing pin-down tests
- 18 - Refactoring pin-down tests
- 19 - Refactoring - Change Signature
- 20 - Code coverage
- 21 - Branch coverage
3. Refactoring Legacy Code
- 22 - Refactoring - Extract Constant strings
- 23 - Refactoring - Extract Constant numbers
- 24 - Refactoring - Extract Variable Extract Method
- 25 - Refactoring - Simplify Arithmetic
- 26 - Refactoring - Simplify Booleans
- 27 - Refactoring - Group-Related Logic
- 28 - Refactoring - Final steps
- 29 - Add new behavior to refactored code
Conclusion
- 30 - Next steps