This course focuses on the Refactor step in TDD, teaching developers to spot code smells and resolve them through refactoring. Using real-world examples, you'll identify common issues, apply refactoring techniques, and ensure functionality is preserved with existing tests.
Overview
Syllabus
- Unit 1: Refactoring in Swift: Eliminating Code Duplication and Magic Numbers
- Refactoring Test Setup in ShoppingCartTests
- Refactoring Duplicated Test Cases in ShoppingCart Test Suite
- Refactoring Duplicated Logic in ShoppingCart Class
- Refactoring Magic Numbers in ShoppingCart Class
- Unit 2: Refactoring in Swift: Extract Method for Improved Code Maintainability
- Refactor User Registration Service by Extracting Validation Logic
- Refactor User Registration Service by Extracting Address Validation Logic
- Refactor User Registration Service by Extracting Data Normalization Logic
- Refactor User Registration Service to Use RandomIDGenerator and Update DataStore Interface
- Unit 3: Refactoring in Swift: Simplifying Function Signatures with Parameter Objects
- Refactor ProcessExamScore with ScoreWeights Parameter Object
- Refactor ProcessExamScore with CoursePolicy Parameter Object
- Refactor ProcessExamScore Function by Reordering Parameters for Clarity
- Refactor ProcessExamScore Function to Include Default Parameter Values
- Unit 4: Refactoring in Swift: Addressing Feature Envy with Move Method
- Refactoring Feature Envy in GradeAnalyzer with Swift
- Refactoring Feature Envy in GradeAnalyzer with Swift
- Refactoring Feature Envy by Moving getFailedAssignments to Student Class
- Refactoring Feature Envy by Introducing StudentGradeCollection in Swift
- Unit 5: Refactoring in Swift: Tackling Large Classes with Extract Class Technique
- Refactoring Shopping Cart with Extract Class Technique in Swift
- Refactoring ShoppingCart with PriceCalculator Class in Swift
- Refactoring ShoppingCart with DiscountCalculator Class in Swift
- Implementing Tests for DiscountCalculator and PriceCalculator in Swift