Skip to content
DevMeme
4469 of 7590
Refactoring Post #4900 · source on Telegram

The Rewrite Revenge Arc

Description

A black-and-white MonkeyUser comic titled `END OF THE LINE` shows a developer angrily confronting an old, improvised machine-like system. The visible dialogue says `THAT'S IT! I NEED TO REWRITE THIS SHIT!`, followed by panels of the developer studying a chaotic blackboard, typing intensely, sweating at a monitor, and standing proudly beside a newer red machine while the caption says `SO PROUD!`. In the final panel, the developer faces the older green machine and says `I'M GOING TO ENJOY DELETING YOU.`, with `MONKEYUSER.COM` printed at the bottom. The technical context is the emotional payoff of replacing a tangled legacy component after a full rewrite, mixing justified cleanup with the dangerous allure of rewrite-driven catharsis.

Comments

30
Anonymous ★ Top Pick Every rewrite starts as architecture therapy and ends with someone discovering the deleted monster was also handling billing retries.
  1. Anonymous ★ Top Pick

    Every rewrite starts as architecture therapy and ends with someone discovering the deleted monster was also handling billing retries.

  2. @Algoinde 3y

    usually refactoring ends up like same shit code, but now In Very Well Separated Modules

    1. @viktorrozenko 3y

      I would disagree, respectfully

    2. @RiedleroD 3y

      if you do it wrong, yes

  3. @Algoinde 3y

    and performance decrease due to all the added abstraction :^)

    1. Алексей 3y

      C++ chads don't think so

      1. @RiedleroD 3y

        C++ doesn't have zero-cost abstractions. You know which language does?

        1. @Box_of_the_Fox 3y

          The one that doesn't have abstractions?

          1. @RiedleroD 3y

            Rust. I thought this meme is well known?

            1. @Box_of_the_Fox 3y

              I was expecting either Rust or C but I wanted to have fun with logic in your sentence

              1. @RiedleroD 3y

                C also doesn't have zero-cost abstractions. come to think of it, I think that's just a buzzword used to describe Rusts struct optimizations.

                1. @viktorrozenko 3y

                  I mean, if C doesn't have 0 cost abstractions then I suppose a good question would be what *are* 0 cost abstractions?

                  1. @RiedleroD 3y

                    abstractions that aren't slower than the unabstracted equivalent. structs in C/C++ are slower than single variables in some circumstances. Rust somehow optimizes them away.

                    1. @Dark_Embrace 3y

                      Are you talking about this? https://doc.rust-lang.org/beta/embedded-book/static-guarantees/zero-cost-abstractions.html Just that the structs can be zero size and so compile time?

                    2. @Dark_Embrace 3y

                      Because what you are describing is this: https://en.cppreference.com/w/cpp/language/Zero-overhead_principle And that's not only completely different subject, but also something that no language provide 100% in all features they describe. Neither C++, nor Rust.

            2. @gizlu 3y

              >imagine having stdlib's strings without zero-cost interoperatibility with C-strings

              1. @gizlu 3y

                c++ isn't perfect with that either - if you wan't to alloc std::string ahead of time and pass it to C api, you have to init all bytes, even though you are going to overwrite them in C inb4 resize: it zero-inits bytes inb4 reserve: that works well when you are using std::string API directly, but accessing that memory (unless it was inited by sth like push/resize) is undefined behavior

                1. @gizlu 3y

                  You are also unable to "convert" (i.e. shallow copy) c string into std::string without paying copy-fee

                  1. @gizlu 3y

                    Though iirc somebody told me that one of new standards introduces kind of container (or something like that) beeing in fact pointer + std::array/std::string like api

        2. Алексей 3y

          near-zero =)

        3. @gizlu 3y

          You probably mean "it has non-zero-cost abstractions" rather than "it doesn't have zero-cost abstractions"

          1. @RiedleroD 3y

            I probably mean "it's a meme, so its validity isn't important"

            1. @gizlu 3y

              point taken xD

  4. @Box_of_the_Fox 3y

    And it seems that if you chose correct technology for task that you know and understand, you can make maintainable and performant application

  5. @Box_of_the_Fox 3y

    Currently I'm dealing with android app made by idiots and I'm slowly refactoring garbage they made

  6. @Dark_Embrace 3y

    I'm not in the chat, admin 🙃 Know the technology you use and RTFM

    1. @RiedleroD 3y

      oh well

    2. @RiedleroD 3y

      I said - I got to deal with systemd rn, sorry - It's a buzzword used by rust fans and as a meme, making fun of said rust fans.

      1. @Dark_Embrace 3y

        Yeah-yeah)) I saw it without joining chat. Just had to open the chat as a guest. Good luck with systemd

        1. @RiedleroD 3y

          thanks

Use J and K for navigation