Ich weiß, dass dies sehr anwendungsfallspezifisch sein kann, aber ich frage mich viel zu oft. Gibt es eine allgemein bevorzugte Syntax?
Ich frage nicht, was der beste Ansatz ist, wenn ich in einer Funktion bin. Ich frage, ob ich vorzeitig beenden oder die Funktion einfach nicht aufrufen soll.
Wrap, wenn um Funktionsaufruf
if (shouldThisRun) {
runFunction();
}
Habe wenn ( Wache ) in Funktion
runFunction() {
if (!shouldThisRun) return;
}
Die letztere Option hat offensichtlich das Potenzial, die Codeduplizierung zu reduzieren, wenn diese Funktion mehrmals aufgerufen wird. Manchmal fühlt es sich jedoch falsch an, sie hier hinzuzufügen, da Sie möglicherweise die Einzelverantwortung der Funktion verlieren .
Hier ist ein Beispiel
Wenn ich eine updateStatus () -Funktion habe, die einfach den Status von etwas aktualisiert. Ich möchte den Status nur aktualisieren, wenn sich der Status geändert hat. Ich kenne die Stellen in meinem Code, an denen sich der Status ändern kann, und ich kenne andere Stellen, an denen er sich trotzig geändert hat.
Ich bin mir nicht sicher, ob es nur ich ist, aber es fühlt sich etwas schmutzig an, diese Innenfunktion zu überprüfen, da ich diese Funktion so rein wie möglich halten möchte - wenn ich sie aufrufe, erwarte ich, dass der Status aktualisiert wird. Aber ich kann nicht sagen, ob es besser ist, den Anruf an den wenigen Stellen, an denen ich weiß, dass er sich möglicherweise nicht geändert hat, in einen Scheck zu packen.