Skip to content

Latest commit

 

History

History
20 lines (17 loc) · 584 Bytes

File metadata and controls

20 lines (17 loc) · 584 Bytes

Refactoring Requirements

Objectives:

  1. Reduce cyclomatic complexity to < 5 per function
  2. Extract nested conditionals into separate functions
  3. Use strategy pattern for discount calculations
  4. Improve readability and maintainability
  5. Preserve all existing functionality

Constraints:

  • Do not change function signatures
  • Maintain backward compatibility
  • Add type hints
  • Add docstrings

Approach:

  1. Extract discount calculation logic into separate functions
  2. Create discount strategy classes
  3. Simplify conditional logic
  4. Use early returns to reduce nesting