Re:Yoda Conditions
by yellowapple on Friday February 17, 2017 @01:03PM
(#13670285)
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 1The 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.
Re:Yoda Conditions
by michaelmior on Friday February 17, 2017 @12:35PM
(#13670072)
Does it? You also can't force everyone who edits your code to follow your conventions.
Also it's slightly awkward to read, as mentioned by others already.