Duplication -

Similar logic that appears in different parts of a system for valid, independent reasons. Changes to one shouldn't necessarily affect the other.

In software development, occurs when the same logic or data is repeated across multiple parts of a codebase . While often viewed as a "code smell" that increases technical debt, strategic duplication can sometimes be better than a poorly designed abstraction. 1. Types of Duplication duplication

A common guideline to avoid premature abstraction is the : First time: Just solve the problem. Second time: Tolerate the duplication (copy-paste). Similar logic that appears in different parts of

Logic that is identical by mistake or convenience. This is the primary target for refactoring. While often viewed as a "code smell" that

Two pieces of code look the same now but represent different business concepts that will eventually diverge. 2. The "Rule of Three" Strategy