Code Reference Map
Key Books
-
"The Pragmatic Programmer: Your Journey to Mastery" (2019 Edition) by Andrew Hunt & Dave Thomas Original source of DRY principle; covers knowledge duplication, types of duplication, and practical applications.
-
"Refactoring: Improving the Design of Existing Code" (2nd Edition) by Martin Fowler Rule of Three, refactoring techniques, code smells related to duplication.
-
"99 Bottles of OOP" (2nd Edition) by Sandi Metz Deep dive on when to abstract, wrong abstractions, and the cost of duplication vs abstraction.
Foundational Articles
-
Sandi Metz - "The Wrong Abstraction" (2016) https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction "Duplication is far cheaper than the wrong abstraction."
-
Kent C. Dodds - "AHA Programming" (2020) https://kentcdodds.com/blog/aha-programming Avoid Hasty Abstractions; balance between DRY and WET.
-
Dan Abramov - "Goodbye, Clean Code" (2020) https://overreacted.io/goodbye-clean-code/ Critique of dogmatic "clean code" and premature abstraction.
-
Dan Abramov - "The WET Codebase" (2019) https://overreacted.io/the-wet-codebase/ When to Write Everything Twice instead of abstracting.
Modern Perspectives (2024-2026)
-
"Duplication Is Not the Enemy" (Terrible Software, 2025) https://terriblesoftware.org/2025/05/28/duplication-is-not-the-enemy/ Modern take on balancing DRY with pragmatism.
-
"Premature Abstraction in Software Engineering" (Codeling, 2024) https://codeling.dev/blog/premature-abstraction-in-software-engineering/ Consequences of abstracting too early.
-
"The Cost of Wrong Abstractions" (Alex Kondov, 2023) https://alexkondov.com/the-cost-of-wrong-abstractions/ Practical examples of abstraction failures.
Tools and Detection
-
jscpd -- Copy/paste detector for 150+ languages https://github.com/kucherenko/jscpd
-
PMD CPD -- Copy-Paste Detector for 31+ languages https://pmd.github.io/pmd/pmd_userdocs_cpd.html
-
SonarQube -- Code quality platform with duplication tracking https://www.sonarqube.org/
Standards and Specifications
-
Single Source of Truth (SSOT) -- Wikipedia https://en.wikipedia.org/wiki/Single_source_of_truth
-
DRY Principle -- Wikipedia https://en.wikipedia.org/wiki/Don't_repeat_yourself
-
Rule of Three (Software) -- Wikipedia https://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)
Schema and Code Generation
-
Protocol Buffers -- Language-neutral schema https://protobuf.dev/
-
OpenAPI Generator -- Generate clients/servers from OpenAPI specs https://openapi-generator.tech/
-
Zod -- TypeScript-first schema validation https://zod.dev/
-
JSON Schema -- Vocabulary for JSON validation https://json-schema.org/
Configuration Management
-
PKL Configuration Language (Apple, 2024) https://pkl-lang.org/
-
Formae + PKL Infrastructure Automation (2025) https://dzone.com/articles/formae-pkl-infrastructure-automation
Testing Resources
-
Pytest Fixtures Documentation https://docs.pytest.org/en/stable/how-to/fixtures.html
-
Test Automation Frameworks (2026) https://testrigor.com/blog/test-automation-frameworks/
Community Discussions
-
Hacker News: "The Wrong Abstraction" Discussion (2020) https://news.ycombinator.com/item?id=23739596
-
Hacker News: "Prefer Duplication Over Wrong Abstraction" (2016) https://news.ycombinator.com/item?id=12061453