Hacker News new | ask | show | jobs
by paol 3404 days ago
This trick can only save people who remember to use it. Warnings emitted by tooling save everyone.

Also it's slightly awkward to read, as mentioned by others already.

2 comments

Warnings can only save people who bother to read them. Yoda conditionals save everyone trying to run or compile the code in question. It goes both ways ;)

Re: awkwardness, it doesn't feel awkward at all to me; given that Erlang and Elixir use assignment for destructuring and pattern-matching, Yoda conditionals feel very natural to me in comparison.

For example, this is valid Elixir code:

    foo = {1, 2}
    
    bar = if {baz, 2} = foo do
            525600
          end
    
    IO.inspect foo  # prints {1,2}
    IO.inspect bar  # prints 525600
    IO.inspect baz  # prints 1
The trick saves the person writing the code and anyone modifying it down the road.

You can't force everyone who edits your code to have linters and warnings turned on. Not everyone follows bests practices.

Does it? You also can't force everyone who edits your code to follow your conventions.
actually you can, depending on the management structure in an organization :)