Yoda Conditions

Yoda Conditions

Yoda Conditions (auch: Yoda Notations) bezeichnen im Programmierjargon eine Form der Quelltextformatierung, bei der innerhalb einer Kondition zwei Teile des Ausdrucks vertauscht werden. Die Bezeichnung für diesen Programmierstil leitet sich aus der Figur Yoda aus dem Star-Wars-Universum ab, der dazu neigte, einige Wörter innerhalb eines Satzes zu vertauschen.[1]

Inhaltsverzeichnis

Beispiel

Gewöhnlicherweise schreiben Programmierer eine Kondition, in diesem Fall eine bedingte Anweisung, so aus:

if($wert == 52) { /* ... */ }
// Liest sich wie: Wenn Wert gleich 52...

Yoda Conditions bezeichnen nun das genaue Gegenteil des Ausdruckinhalts:

if(52 == $wert) { /* ... */ }
// Liest sich wie: Wenn 52 gleich Wert...

Bei diesem Programmierstil werden demnach zuerst die Konstanten aufgeführt und danach der variable Vergleichswert. Analog zur Aussprache des Namensgebers Yoda „Wenn blau ist der Himmel ...“ führt dies unweigerlich zu einer seltsam anmutenden Aussprache der Kondition: „Wenn null ist gleich $wert ...“.

Vorteil

Das Vertauschen der beiden Bedingungswerte ändert nichts am Verhalten des Programms. Obwohl sich für den Programmierer diese Kondition schlechter lesen lässt als das erste Beispiel, hat diese Anwendung einen Vorteil: Ein bekannter Flüchtigkeitsfehler, der aus der Kondition eine Variablenzuweisung macht, kann ausgeschlossen werden:

if($wert = 52) { /* ... */ }
// Ist (unbeabsichtigt vom Programmierer) immer true

Yoda Conditions bezeichnen nun das genaue Gegenteil des Ausdruckinhalts:

if(52 = $wert) { /* ... */ }
// Erzeugt einen Syntaxfehler

Das untere Beispiel verhindert den Flüchtigkeitsfehler, da während der Laufzeit oder beim kompilieren ein Fehler ausgegeben bzw. erzeugt wird: 52 ist eine Konstante; dieser kann kein Wert zugewiesen werden[2].

Kritik

Kritiker des Notationsstils bezeichnen die mangelhafte Lesbarkeit als überwiegenden Nachteil an und sehen das Problem des oben beschriebenen Flüchtigkeitsfehlers als nicht gegegeben an. Dabei wird aufgeführt, dass professionelle Entwicklungsumgebungen diese Zeile als möglichen Fehler markieren. Moderne Programmiersprachen wie C# erlauben zudem eine Variablenzuweisung innerhalb einer Kondition ohnehin nicht.[3]

Siehe auch

Weblinks

Einzelnachweise

  1. debuggen du musst - Yoda Conditions in PHP. 10. Mai 2010, abgerufen am 22. September 2011 (deutsch).
  2. Nils Langner: Yoda Conditions. 26. Juli 2010, abgerufen am 22. September 2011 (deutsch).
  3. Why Yoda conditions are bad and usage of Java’s ‘final’ keyword is good. 15. Mai 2011, abgerufen am 22. September 2011.

Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Bedingte Anweisung und Verzweigung — Eine Bedingte Anweisung ist in der Programmierung ein Programmabschnitt, der nur unter einer bestimmten Bedingung ausgeführt wird. Eine Verzweigung legt fest, welcher von zwei (oder mehr) Programmabschnitten, abhängig von einer (oder mehreren)… …   Deutsch Wikipedia

  • Liste des personnages de Star Wars — Cet article décrit les personnages fictifs de la saga de Star Wars par ordre alphabétique. Certains noms ont été francisés dans les premiers films (épisodes IV, V et VI) principalement dans un souci de synchronisation entre les lèvres des acteurs …   Wikipédia en Français

  • Déglutition atypique — La position de la langue joue un rôle essentiel dans la croissance de la face et dans les fonctions buccales (mastication, phonation, déglutition, etc.). Dans la déglutition atypique naissante, vestige de sa forme infantile, la langue s oppose à… …   Wikipédia en Français

  • List of minor Star Wars characters — This article is about minor characters in the fictional Star Wars universe, who do not fit into any other category.AlisiaAlisia is a female Gran who works as a station nurse in the Med Center of Tansarii Point Station. She and a 2 1B Surgical… …   Wikipedia

  • Bib Fortuna — Personnages de la Guerre des étoiles Cet article fait partie de la série Science fiction La SF à l’écran autre A B …   Wikipédia en Français

  • Dark Néo — Personnages de la Guerre des étoiles Cet article fait partie de la série Science fiction La SF à l’écran autre A B …   Wikipédia en Français

  • Dengar — Personnages de la Guerre des étoiles Cet article fait partie de la série Science fiction La SF à l’écran autre A B …   Wikipédia en Français

  • Dice Ibegon — Personnages de la Guerre des étoiles Cet article fait partie de la série Science fiction La SF à l’écran autre A B …   Wikipédia en Français

  • Greedo — Personnages de la Guerre des étoiles Cet article fait partie de la série Science fiction La SF à l’écran autre A B …   Wikipédia en Français

  • HK-47 — Personnages de la Guerre des étoiles Cet article fait partie de la série Science fiction La SF à l’écran autre A B …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”