The more @elixirlang I write, the more distaste I have for with. My issue with it is that it removes cohesion in your unhappy path. All of a sudden, you are handling errors without the context that created them.
I've seen this pattern where you do with {:step, result} <- {:step, action()} and then use that to pull out the contextual error paths in the else block, which I also dislike as it makes the code so dense.
What do I prefer? Maybe a nested case here and there isn't so bad. With's are fine when you just want to result the unhappy path as is, or the error logic is pretty much _ -> do_something()
• • •
Missing some Tweet in this thread? You can try to
force a refresh