• AggressivelyPassive
    link
    fedilink
    2910 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
      link
      fedilink
      1310 months ago

      todos

      I found a simple trick against this: just remove them. Accept it ain’t gonna happen man.

      • AggressivelyPassive
        link
        fedilink
        510 months ago

        Well, yes, but the underlying issues still persist, so it’s not exactly a sustainable strategy.

        • magic_lobster_party
          link
          fedilink
          310 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
        1
        edit-2
        10 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
    610 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
        110 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
          19 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
            29 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
      210 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
    410 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
      link
      fedilink
      110 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

  • hswolf
    link
    fedilink
    210 months ago

    is this a section of a discord api implementation?