Lange Wicklungsbedingungen if
sollten nach Möglichkeit vermieden werden, manchmal schreiben wir sie jedoch alle. Auch wenn es sich um eine sehr einfache Bedingung handelt, sind die beteiligten Aussagen manchmal einfach sehr wortreich, sodass die gesamte Bedingung sehr langwierig ist. Was ist die am besten lesbare Art, diese zu formatieren?
if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) {
thud();
}
oder
if (
FoobarBaz::quxQuux(corge, grault)
|| !garply(waldo)
|| fred(plugh) !== xyzzy
) {
thud();
}
oder
if (FoobarBaz::quxQuux(corge, grault)
|| !garply(waldo)
|| fred(plugh) !== xyzzy) {
thud();
}
oder
thudable = FoobarBaz::quxQuux(corge, grault);
thudable ||= !garply(waldo);
thudable ||= fred(plugh) !== xyzzy;
if (thudable) {
thud();
}
oder irgendwelche anderen Vorlieben?
coding-style
conditions
betrügen
quelle
quelle
Ich halte die Operatoren gerne am Ende, um die Fortsetzung anzuzeigen:
quelle
Ich bin ein großer Fan von aussagekräftigen Variablennamen:
Oder Refactor als Funktion, wie oben erwähnt.
quelle
Ich zerlege die chaotischeren Unterausdrücke oder alle als Bool-Variablen. Dann kann die boolesche Logik der obersten Ebene der 'if'-Anweisung klargestellt werden. In der Art von Arbeit, die ich mache, sind es nicht immer mehrere Dinge, die ODER- oder UND-verknüpft sind.
Dies ist besonders gut in einem Debugger, in dem ich mir alle Bools ansehen kann, bevor ich das 'if' ausführe.
quelle
Ich neige dazu, die Operatoren am Anfang neuer Zeilen auszurichten, damit ich mich daran erinnere, wie ich Terme kombiniere (sowohl für lange Logik als auch für lange Arithmetik). So was:
Dies funktioniert nur, wenn ich um zwei Leerzeichen einrücke oder meine Umgebung so einrichte, dass mehr mehr mehr als ein mehrzeiliges Prädikat eingerückt wird. Andernfalls ist es schwer zu sagen, wo das Prädikat endet und nützlicher Code beginnt.
quelle
Ich bin ein Fan von:
Auf diese Weise sieht es immer noch wie ein if-Ausdruck aus und nicht wie ein zerlegter if-Ausdruck. Der Einzug zeigt, dass es sich um eine Fortsetzung der vorherigen Zeile handelt.
Sie können es auch einrücken, bis sich die öffnende Klammer am Ende der vorherigen Zeile befindet, sodass sie am Ende des if-Ausdrucks steht, wie er sein soll.
quelle