Yoda conditions (notação Yoda)

Yoda conditions, também conhecida como notação Yoda, é uma forma de formatação de código que inverte a ordem padrão de uma declaração de igualdade condicional. O estilo de formatação é nomeado para o caractere Star Wars cuja sintaxe tipicamente envolve uma ordem objeto-subjetivo-verbo em vez da ordem padrão do objeto-subjetivo-verbo-objeto em inglês: "Patience you must have" por exemplo, em vez de "You must have patience"

Na programação, as condições Yoda envolvem a troca das posições da variável com a de a constante, função ou literal em uma expressão condicional de igualdade.

Em Know The Code, Tonya Mork oferece os seguintes exemplos:

<Tipical conditional structure     < >Yoda conditions
1   if ( == 'post' ) {
2   // do stuff
3   }
1   if ( 'post' == ) {
2   // do stuff
3   }

Esse formato força um erro no caso de certos erros de digitação. Se, por exemplo, o programador digita um operador de atribuição (=) na instrução quando pretende digitar o operador de igualdade (==), o formato Yoda forçará um erro de sintaxe. O erro impede que o código seja executado e, por causa do erro, possivelmente causando comportamento não intencional.

De acordo com Tonya Mark, prevenir comportamentos não intencionais nessa situação é a única vantagem de usar o Yoda condições e a única razão para usá-lo. A principal desvantagem das condições do Yoga é o fato de que elas tornam o código mais incômodo de ler e tornam a revisão do código mais difícil do que o necessário.