• AggressivelyPassive@feddit.de
    link
    fedilink
    arrow-up
    29
    ·
    7 months ago

    I have to say, I’m getting more and more frustrated by the bad code I have to write due to bad business circumstances.

    I want clean, readable code with proper documentation and at least a bit of internal consistency and not the shoehorned mess of hacks, todos and weird corner cases.

        • magic_lobster_party@kbin.run
          link
          fedilink
          arrow-up
          3
          ·
          7 months ago

          It’s mostly a joke, but often when I find todos they’re so old they’re no longer relevant.

          Of course you shouldn’t blindly remove todos.

      • frezik@midwest.social
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        7 months ago

        Don’t just put “TODO”. If they’re in the final pull request, they need to mention a ticket that’s intended to fix that TODO. If you/your team decides it’s not important, then remove it and close out the ticket. Either way, you’re required to do something with it.

  • anton@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    6
    ·
    7 months ago

    Instead of

    if let Some(a_) = a{
        ()
    } else if let Some(b_)=b{
        ()
    } else {
        dostuff 
    }
    

    you could just use

    if a.isNone()&&b.isNone(){
        dostuff
    }
    

    Also if you don’t use the value in a match just use _

      • Thelie@sh.itjust.worksOP
        link
        fedilink
        arrow-up
        1
        ·
        7 months ago

        I’m not sure how I would go about this in an elegant way since I’m matching the string I get from a message…

        • jimitsoni18@lemmy.zip
          link
          fedilink
          arrow-up
          1
          ·
          6 months ago

          If the message used enums for actions/procedures like SPAM_MEMES, then using enums would be more performant

          • Thelie@sh.itjust.worksOP
            link
            fedilink
            arrow-up
            2
            ·
            6 months ago

            I think you’d be happy to know that I’ve gone for a bit of an overkill and used Pest to parse the commands, which automagically gets me an enum to match against in this position.

            The sad part is, I haven’t gotten the Media upload to work, so the project is on ice for a little while…

    • Thelie@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      2
      ·
      7 months ago

      That’s a good point, thanks. Maybe I’ll go without the if entirely, the (janky) code is still very much in flux ;)

  • 82cb5abccd918e03@lemmygrad.ml
    link
    fedilink
    arrow-up
    4
    ·
    7 months ago

    Doesn’t that construction only work in categories that also contain their own morphisms as objects since a profunctor maps (Cᵒᵖ × C) → Set and not the same like (Cᵒᵖ × C) → C? Since the category of Haskell types special, containing its own morphisms, so the profunctor could be like (haskᵒᵖ × hask) -> hask? or I just don’t understand it.

    • Kogasa@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      7 months ago

      Hom functors exist for locally small categories, which is just to say that the hom classes are sets. The distinction can be ignored often because local smallness is a trivial consequence of how the category is defined, but it’s not generally true

  • 6mementomori@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    6 months ago

    I don’t nearly know enough to understand this but is anyone willing to help me get the thing on the top :>