2 ms·
> 3. DRY is a religion here, to the point where everything is fragmented to hell. I have a hard time explaining but I feel like there’s a tradeoff where things
by bjourne 6y ago
> 3. DRY is a religion here, to the point where everything is fragmented to hell. I have a hard time explaining but I feel like there’s a tradeoff where things can be split apart into their own modules to a degree that becomes counter-productive. Am I wrong about that?
There are three stages that almost every developer goes through. 1. Just code the shit up. Get it done and don't worry about structure. 2. Modularize everything! Design patterns, code reuse, code components, refactoring, getters & setters (cause attribute access is "harmful"), pointless doc strings, useless const declarations, and (shudder) microservices. 3. Nirvana. The stage where you realize what matters and what doesn't. You do not spend a month refactoring a bash script that will only be run once, for example.
I don't know you so I can't tell if you are in stage 1 or 3. Your colleagues definitely seem to be stuck in stage 2.
In my experience, you can't really teach people in stage 2 that what they are doing is wrong. They don't know that stage 3 exists so if you tell them that they are overdoing it, they'll think that you're a stage 1 scrub and/or sloppy. They have to realize themselves that they are wasting their time and that simple solutions almost always are better.
- potta_coffee 6y agoI thought I was in stage 3, but this whole experience has me doubting myself somewhat. Though, I know I'm not stuck in stage 1. The way I view myself is, I know I'm not a genius, so I do what I can to mitigate opportunity for mistakes, which means keeping things as simple as possible. Sometimes complexity is required but my team makes excuses for complexity.