• qwop
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    I’ve never understood returns (https://github.com/dry-python/returns), is it just a gimmick or do people actually use it? It seems like it would be awkward to use and is working against how the language was designed.

    • sloppy_diffuser@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      I don’t use this library, but one I wrote myself with maybes, eithers, validators, and various other monads in production code.

      While not pythonic, I don’t think its a gimmick. I allow my junior engineers to write imperative and we will pair program to convert it to use monad structures like the ones in this library. We tend to find a lot of bugs and reduce the lines of code.

      While we could probably clean up their imperative code to remove bugs and duplicated logic, but I find using monad chains makes it easier to find abstractions.

      Data validation and error handling probably net the most return on investment in my experience. Simply return a left at some unit of code and handle it at the end of the chain.