I am more of an advocate of common sense. Experienced devs will write the abstraction straight away but it is never as simple as DRY or WET. If you have 2 use cases you should always think about DRY but when considering this, I try to look at a few things:
How much time it takes to create the abstraction - if I need to spend a week to abstract something I can write in 10 minutes there is no point in abstracting
How likely it is that I will need to reuse the logic - by likely I don't mean in my head but in actual requirements, designs etc.
What are the differences between the 2 use cases and the possible 3rd one - often you find yourself stretching the Abstraction just to fit in a similar use case and that is very bad. A better approach would be then partial abstraction and abstraction composition
So don't be DRY or WET but be smart and use your common sense and experience :)
I am more of an advocate of common sense. Experienced devs will write the abstraction straight away but it is never as simple as DRY or WET. If you have 2 use cases you should always think about DRY but when considering this, I try to look at a few things:
So don't be DRY or WET but be smart and use your common sense and experience :)
Be moist. Exactly.
It's not about whether it's the same logic, it's about whether it's the same thing.
If your app features a yellow submarine and a banana, you wouldn't want to abstract out the colour yellow as they're two totally different things.
Well you would abstract out the color into a colors constants TBH :D