I can see the value of examples, but in this case I appreciate the post largely for its universality and lack of examples. On reading it, examples from past and present experience spring immediately to mind, and I'm tucking this away as a succinct description of the problem. Maybe I can share it with others when more concrete examples come up in future code review.A principle takes skill the apply, but it's still worth stating and pondering.
noodletheworld|1 year ago
Examples of what?
Picking the wrong abstraction? Regretting your mistakes?
I can certainly think of many examples of that.
How you unwrapped an abstraction and made things better by removing it?
I have dozens of battle stories.
Choosing not to use an abstraction because it was indirection?
Which is what the article says to do?
I’m skeptical.
I suspect you’ll find most examples of that are extremely open to debate.
After all, you didn't use the abstraction so you don’t know if it was good or not, and you can only speculate that the decision you made was actually a good one.
So, sharing that experience with others would be armchair architecture wouldn't it?
That’s why this article is arrogant; because it says to make decisions based on gut feel without actually justifying it.
“Is this truly simplifying the system?”
Well, is it?
It’s an enormously difficult question to answer.
Did it simplify the system after doing it is a much easier one, and again that should be the advice to people;
Not: magically do the right thing somehow.
Rather: here is how to undo a mistake.
…because fixing things is a more important skill and (always) magically doing the right thing from the start is impossible; so it’s meaningless advice.
That’s the problem with universal advice; it’s impossible to apply.
unknown|1 year ago
[deleted]