• DreamButt@lemmy.world
    link
    fedilink
    English
    arrow-up
    123
    ·
    2 days ago

    Ngl that’s like baby levels of nasty code. The real nasty shit is the stuff with pointless abstractions and call chains that make you question your sanity. Stuff that looks like it’s only purpose was to burn the clock and show off a niche language feature. Or worse than that even is when the project you inherit has decade old dependencies that have all been forked and patched by the old team

    If all I had to worry about was organization and naming I’d be over the moon

    • dohpaz42@lemmy.world
      link
      fedilink
      English
      arrow-up
      66
      ·
      2 days ago

      Git commits with message saying “pushing changes” and there are over 50 files with unrelated code in it.

      • Black616Angel@discuss.tchncs.de
        link
        fedilink
        arrow-up
        3
        ·
        21 hours ago

        In the past I had commit messages with change numbers from a system, that was no longer in use.

        So the commit just said “CH-12345“. It is the kind of annoying, where you can’t even really be mad at someone.

        • dohpaz42@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          20 hours ago

          I put my ticket numbers in my tickets, but i also try to describe the change too (e.g. “Fix bug where xyz happens due to zyx action”). Also, atomic commits: commit only related changes.

          Yes, it takes longer to commit large changes, BUT you can easily merge the commits, and rollback only what needs to be rolled back.

        • pinball_wizard@lemmy.zip
          link
          fedilink
          arrow-up
          23
          ·
          edit-2
          2 days ago

          “Fix for critical issue.”

          Followed by an equally large set of files in a commit with just the message:

          “Fixup”

          And then the actual fix turns out to be mixed in with “Start sprint 57 - AutoConfiguration Refactor” which follows “Fixup”

    • merc@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      ·
      21 hours ago

      Even if the abstractions aren’t pointless, there’s a limit to how many levels of abstraction you can make sense of.

      I’ve seen some projects that are very well engineered, with nice code, good comments, well named variables and functions. But, the levels of abstraction and nesting get so deep that you forget why you were digging by the time you get somewhere relevant.

      What’s frustrating there is that you can’t blame someone else. It’s just a limit for how much your brain can contain.

    • Valmond@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      1 day ago

      And hard casting onto the wrong class because a neat function lives in there (who will detect you did that and treat you a little different because you don’t have all the resuired data in that class instance) as a “quick fix”

    • criss_cross@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      2 days ago

      My favorite was an abstract class that called 3 levels in to other classes that then called another implementation of said abstract class.

      And people wonder why no one on our team ever got shit done.