Rethinking Code Reuse: Balancing DRY, YAGNI, and Maintenance Costs
The article argues that while code reuse and DRY can boost productivity, over‑abstracted, duplicated logic often inflates maintenance costs, so developers should apply DRY cautiously, favor YAGNI and heuristics like the Rule of Three, and prefer clean‑architecture boundaries to keep complexity manageable.
In software engineering, reuse and extensibility are often pursued together, yet they inherently conflict.
The author reflects on the “Duplicated code fragment” warning in IntelliJ IDEA, noting that while duplicated code is a known smell, over‑abstracted reusable code can cause greater problems in complex projects.
Historical perspective: from Turing and von Neumann to modern frameworks, the industry strives for both reusability and scalability, a natural tension.
Case study: Supercell’s game‑development platform and Alibaba’s “big middle‑platform, small front‑end” strategy illustrate how a well‑designed technical middle platform can boost productivity, but also introduce high cognitive and maintenance costs.
Maintenance cost dominates software lifecycle; quoted experts emphasize that software’s intangible nature makes cost estimation difficult, and that most of the total cost is spent on maintenance.
The essay distinguishes “true duplication” (identical intent) from “accidental duplication” (identical implementation for different intents), citing Robert C. Martin’s view that accidental duplication may be acceptable.
It revisits the DRY principle (from The Pragmatic Programmer) and argues that DRY should be applied cautiously; premature optimization and over‑abstraction can increase complexity.
Alternative guidelines such as YAGNI, the Rule of Three, and the balance between DRY and YAGNI are presented as practical heuristics for managing abstraction and code reuse.
Finally, the author suggests that a “clean architecture” that isolates complexity may be a more sustainable approach than blindly pursuing reuse.
DaTaobao Tech
Official account of DaTaobao Technology
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.