Skip to content
DevMeme
3071 of 7590
DesignPatterns Architecture Post #3386 · source on Telegram

Architecture Diagram vs. Implementation Reality

Description

This is a two-panel meme contrasting an idealized software architecture with its complex reality. The top panel is labeled 'How I draw the architecture' and shows a very simple, clean diagram: three circles connected by straight arrows in a neat flow. The bottom panel, labeled 'How it's actually implemented', shows a chaotic explosion of interconnected shapes, icons, and arrows, representing a 'spaghetti architecture'. This tangled diagram includes various cloud service icons, database symbols, and countless overlapping lines, symbolizing the immense and often messy complexity of real-world systems. The humor lies in the stark difference between the elegant design and the convoluted reality, a situation familiar to any experienced engineer who has seen projects evolve with new requirements, quick fixes, and accumulating technical debt

Comments

49
Anonymous ★ Top Pick The first diagram is what we show the new hires. The second is what we show the SRE team when they ask why the latency is so high
  1. Anonymous ★ Top Pick

    The first diagram is what we show the new hires. The second is what we show the SRE team when they ask why the latency is so high

  2. Anonymous

    I’ll advocate zero-copy C++ and strict typing all week, but the moment the contest clock shows 2 s, I slip into the black suit called “from collections import *” and pray PyPy’s JIT forgives my O(n³) confession

  3. Anonymous

    After 15 years of optimizing C++ templates and hand-tuning assembly, you realize the real competitive advantage in programming contests is typing 'sorted()' instead of implementing quicksort for the 500th time - because apparently, O(n log n) is O(n log n) whether it takes 5 lines or 50

  4. Anonymous

    The irony is palpable: you spent years mastering C++ templates, Rust's borrow checker, and Java's enterprise patterns, but when that LeetCode timer starts counting down, suddenly Python's `from collections import defaultdict` becomes your entire personality. It's not that the other languages aren't powerful - it's that when you're racing against the clock to implement Dijkstra's algorithm for the third time this week, nobody has time for manual memory management or verbose type declarations. Python's standard library is basically competitive programming on easy mode, and we've all made peace with that Faustian bargain

  5. Anonymous

    Competitive programming: I ditch every language, put on the Python suit, and start writing C++ in an accent - heapq, preallocated arrays, sys.stdin.buffer.readline - just to outrun TLE

  6. Anonymous

    Picking Python for competitive programming is the black‑suit move: 10x developer speed, 0.5x runtime - then the judge reminds you that constant factors are part of the system budget

  7. Anonymous

    CP pros shed langs like old suits for C++ speed; Python clings symbiote-style, seducing with readability until TLE rips your heart out

  8. @nuntikov 5y

    It do be like that sometimes

  9. @nuntikov 5y

    Some still prefer C

  10. @saluev 5y

    except it’s C++

    1. @beton_kruglosu_totchno 5y

      i was puzzled when pip install asked me for a Rust compiler even

  11. @Dma207 5y

    God bless python )

  12. @napLord 5y

    >>competitive programming >>python Ok

    1. @RiedleroD 5y

      beat me this fall and then start talking

  13. @karim_mahyari 5y

    Why tho? I thought STL was richer than other libraries; does python have an equivalent of STL?

    1. @daniiltimachov 5y

      python built-ins are way above STL

      1. @MetalBall887 5y

        Like 100-1000× instructions per operation above, yes

        1. dev_meme 5y

          Or you never understood how python works or you just didn't really attend programming competitions, like ICPC Except like international competitions when there is no way to find or craft good algh out of STL python

          1. @MetalBall887 5y

            I'm an international master in codeforces if that matters and can say doing competitive programming in Python is effectively shooting yourself in a leg

            1. dev_meme 5y

              Looks like someone lied in that message

              1. @MetalBall887 5y

                I know only two grandmasters maining Python, one of them being pajenegod and he uses PyPy with his 100-200 lines template for fast io and data structures

                1. dev_meme 5y

                  Like guys who use C++ doesn't use pre-templated solutions 😂

                  1. @MetalBall887 5y

                    You either copy-paste a template or just type it out with your hands the same way everytime you need to use it

        2. dev_meme 5y

          But if the last one is true you wouldn't say this

      2. @karim_mahyari 5y

        Thanks, I might give them a more thorough look I've always avoided python for competitive programming because I thought it's not fast enough

        1. dev_meme 5y

          Just to impress yourself, ask python to calculate 2 raised to the power of 20000 or something

          1. @MetalBall887 5y

            (until it has a precision error lol)

            1. dev_meme 5y

              ew

          2. @daniiltimachov 5y

            yo boost MP does that, too ;)

            1. @Dobreposhka 5y

              military police?

              1. @daniiltimachov 5y

                multiprecision 😁

      3. Deleted Account 5y

        ngl haskell best competitive lang

        1. Deleted Account 5y

          rich std fast execution time high-level

  14. @MetalBall887 5y

    And he usually switches to C++ after div1C or so

    1. dev_meme 5y

      Here I would agree!

    2. dev_meme 5y

      Such switch could be painful be essential for sustainability of skills growth

  15. @MetalBall887 5y

    But it's usually about advanced algorithms and data structures

  16. @MetalBall887 5y

    Anyway might be helpful for those who's going to do CP in python: https://github.com/cheran-senthil/PyRival/tree/master/pyrival

    1. dev_meme 5y

      It's better to implement algorithm by yourself at least once and even better few times, before usage of ready-to-go solutions, but it's up to mind of everyone :)

    2. Deleted Account 5y

      most competitions do not allow external libs

      1. @MetalBall887 5y

        Those are templates, no external libs Probably Didn't look into it much

        1. Deleted Account 5y

          well, then that's not even interesting

          1. @MetalBall887 5y

            It's for people who are doing competitive programming in a script language what did you expect

  17. @MetalBall887 5y

    They chose this path already

    1. @RiedleroD 5y

      …no? I don't use templates at all.

      1. @MetalBall887 5y

        Path of making their experience not interesting

        1. @RiedleroD 5y

          why exactly do you think that?

          1. @MetalBall887 5y

            No particular reason, just a part of humor

            1. @RiedleroD 5y

              :/ aight then

Use J and K for navigation