Senior Devs Celebrate Four Layers of Abstraction Over Simplicity
Description
Meme captioned 'Senior devs after adding 4 layers of abstraction to avoid simplicity' over a grainy still from the infamous 1995-era Microsoft Windows launch event footage (ZDF watermark visible), showing Steve Ballmer, another exuberant Microsoft executive in a red polo, and Bill Gates dancing awkwardly on stage against a blue backdrop, fists pumping. The joke targets the architecture-astronaut tendency: instead of writing a straightforward solution, senior engineers gleefully wrap it in factories, providers, adapters, and interfaces, then celebrate the resulting 'enterprise-grade' indirection as a triumph
Comments
16Comment deleted
Any problem can be solved with another layer of abstraction - except the sprint where someone has to read the stack trace through all four of them
Perfect encapsulation achieved: nobody can find the business logic anymore.
Are those actual senior devs or delusional cosplayer hulls needed to attend meetings? Comment deleted
I had to do this recently, but the reason was the "simple" solution was hacky and causing issues with the garbage collector because of the reference counter. Idk how I feel about this meme. Comment deleted
I've noticed a disturbing trend lately even in one of my support chats where people seem to be vehemently against any type of abstraction whatsoever. Comment deleted
Don't forget that the same people want the "Make good" button. Comment deleted
Not every case should be solved with a simple solution, but that doesn't mean extra abstraction layers are always justified I don't think this is really some new trend. Newer devs tend to look for simple solution first (possibly wasting time), while those who have been burnt have an inner force pushing them to not even look at simpler option In the end being a good dev is about choosing the better option often enough, instead of fighting against one of the extremes Comment deleted
I agree with your last part wholeheartedly, and it goes hand in hand with picking the right tool for the job. I develop an API library where design patterns need to be followed for consistent usage, and that can involve a hefty amount of abstraction to keep things maintainable. The conversation should never start off as "don't use abstraction" but "do I need abstraction to make my life easier to maintain this in the future" Comment deleted
IME >Newer devs tend to look for simple solution first (possibly wasting time) This is absolutely not true at all. It's often the other way around: everything but the simpler solution. Comment deleted
"Disturbing" not like it's the 50+ nested functions to do every little action may cause performance issues. Definitely it can be solved with 1 more layer of indirection Comment deleted
You don't have this problem when you follow proper design patterns and set reasonable limits for cyclomatic complexity Comment deleted
Good luck explaining to other people in team that "every known to mam" pattern is not "proper" Comment deleted
Junior dev looking at you after adding layer of abstraction just to avoid reading your code Comment deleted
If you don't have design patterns and SOPs for your projects and you're working with a team it's a lost cause anyway Comment deleted
Like bro what does this abstract singleton factory solve except making code 3 times larger and spreading it across 15 files instead of 2 Comment deleted
It does a nice part in weekly calls and time tracking. Comment deleted