SOLID & Design Patterns Interview Question #127
What is the Spaghetti Code anti-pattern?
Anti-Patterns, Refactoring, DI Lifetimes & Senior Design Scenarios Senior Advanced
Quick Interview Answer
Spaghetti Code describes software with tangled control flow, unclear responsibilities, and dependencies that make changes difficult to predict. It often develops through repeated patches without maintaining boundaries or abstractions.
Detailed Explanation
Spaghetti Code describes software with tangled control flow, unclear responsibilities, and dependencies that make changes difficult to predict. It often develops through repeated patches without maintaining boundaries or abstractions.
Refactoring should focus on understanding behavior first, adding tests around important paths, extracting cohesive responsibilities, and simplifying dependencies incrementally rather than performing a blind rewrite.
Code Example
// Warning signs:
// - unrelated responsibilities in one method
// - global mutable state
// - deep nested conditions
// - duplicated business rules
// - hidden side effects