Tags→#premature-optimization
DRY does more harm than good
«Please DRY up your code» is usually bad advice – abstraction creates coupling and complex code. I'd advocate ALRY – ALways Repeat Yourself. When that code has matured, you are in a better position to see if it's a matching concept that can be combined to common code – or if it's just accidentally similar.
Select velocity + adaptability over performance
Your code speed can be seen as a combination of velocity (how fast you add features), adaptability (how well suited code are for future changes) and performance (how fast the user experiences it). Don't care about performance until it's a problem. Then measure, test and measure.