I find Repeating Code very useful to find common patterns and then refactor over those to do DRY.
And then you can make the judgment whether the abstraction is an improvement over the duplication.
Better to have multiple lots of dumb code than one lot of clever code.