Skip to content
DevMeme
7388 of 7590
CodeQuality Post #8097 · source on Telegram

Pool of Shame: Mocked for Duplicating Code Instead of Abstracting

Description

The classic 'people pointing and laughing in a pool' comic illustration: eight grinning swimmers in a yellow-tinted public pool form a circle around one miserable, wide-eyed man standing chest-deep in the middle, all pointing at him. Overlaid captions give the mockers dialogue: "where's your base class, loser?", "hahaha, he duplicated code that could have been abstracted", and "i bet he doesn't even know how generics work". The meme lampoons OOP-purist code review culture, where copy-pasting code instead of building base-class hierarchies and generic abstractions invites public ridicule - while seasoned engineers know premature abstraction is often the worse sin (WET vs DRY, 'duplication is cheaper than the wrong abstraction')

Comments

23
Anonymous ★ Top Pick Laugh now - in six months that 'missing' base class would've grown nine template parameters and a config flag, and the copy-paste guy ships while you refactor
  1. Anonymous ★ Top Pick

    Laugh now - in six months that 'missing' base class would've grown nine template parameters and a config flag, and the copy-paste guy ships while you refactor

  2. Anonymous

    Everyone laughed at the duplicate code until the base class needed a boolean named `isActuallyThisSubclass`.

  3. @dude_s7 2mo

    Claude, what are they talking about?

  4. @Algoinde 2mo

    https://youtu.be/wo84LFzx5nI

  5. @yevhen_k 2mo

    first interpretation: vibecoder being shamed on not knowing basics second interpretation: simple code chad being shamed on making code simple and readable both interpretation fail basic logic. the first one fails because vibecoder has clean water around him and all other piss their pants. should be vise versa. the second one contradicts the definition of chad. sad person ashamed of their simple code cant be a chad. so the real interpretation of the meme is unclear. ps do I sound like llm?

    1. @Algoinde 2mo

      Hobbyist junior that was not taught oop and used what simply worked but now faces it in the workplace

      1. @TarasPushkar24 2mo

        Perfect example is this video https://youtu.be/pCbZYe2yoDo

    2. @hy60koshk 2mo

      This. The meme is thrash.

    3. @dzek69 2mo

      Same. So i came to the third interpretation: someone cant meme

    4. dev_meme 2mo

      Stop with those vibevoders Meme laughs at application of design principles and approaches without even considering any need for them Do you see any context why they are suggesting any of it? Yeah

      1. @wielki_arcymistrz 2mo

        people with abstract thinking ability at the level of a dishwasher from '90s often reject any abstractions by calling them redundant, and their trash code "beautifully simple" over-engineering is also a thing, but it's impossible to say whether the author of the meme is a case of the latter or the former without seeing the code Unfortunately, vibecoders and other Dunning-Kruger peakers alike will use memes like that to feed their delusions of grandeur

      2. @hy60koshk 2mo

        1. If his code is beautifully simple, then why does he feel bad? That's the "Chad" case. 2. One does literally say "he duplicated the code that could have been abstracted". The abstraction level is debatable, ofc, but the fact of the occurrence of code repetition is a hint that the probability that the code is shit is higher.

        1. dev_meme 2mo

          I’m so tired of people’s attempt to make abstractions to handle 100 small cases "but besides this small nuance the rest is exactly the same" being repeated again and again… No, there’s tons of cases when big portions of code can be duplicated instead of god-like base class abstractions

          1. @hy60koshk 2mo

            I'm not talking about godlike base classes. Those are garbage. In a broader sense (not just in terms of interfaces, abstract classes and stuff), any move of duplicated code to a function that's not made precisely for that single action with 100 lines of case-specific code, is an abstraction too.

            1. dev_meme 2mo

              Image has no context People all around suggest what guy in clean water should change and name him names Doesn’t look like a sane review process to me

              1. @hy60koshk 2mo

                > sane review process Shall we create a ticket with a request for more context for that unclear task of understanding the meme?

                1. dev_meme 2mo

                  Let’s setup a real quick meeting first, fill in checklist in confluence and agree on epic which will contain intended scope 🙏

    5. @Art3m_1502 2mo

      You assumed the person in the middle is chad who's never upset. He's just a guy that wanted to write simple code and was shamed for it therefore he is sad. I like the meme

    6. @TarasPushkar24 2mo

      You sound like a terminally online person with optimisation OCD and analytical mind. Btw i have a 3rd interpretation: premature abstraction is the root of all eveil, YAGNI

  6. @callofvoid0 2mo

    Or maybe someone who doesn't use OOP in the circle of C# users

  7. @agrubskiy 2mo

    If you don’t have 3 layers of boilerplate - you are not doing it right

  8. Егор 2mo

    overengineering vs traditional engineering

  9. @posttrau 2mo

    I think the main reason is that there are a huge number of low-quality js and python programmers without any basic cs knowledge and for whom abstractions are some kind of abstruse and unnecessary things

Use J and K for navigation