Muster unberechtigter vorzeitiger austritt

Als wiedergewonnener Single-Exit-Point-Programmierer dachte ich, ich hätte ein ziemlich gutes Verständnis von Argumenten dafür und dagegen, aber dieser Punkt erzeugte einige interessante Community-Feedback mit Punkten, die ich nicht berücksichtigt hatte. Obwohl sein statementbasierter Kern nirgendwo hingeht, bedeutet die Einführung von Lambdas und Streams in Java 8, dass wir alle einen größeren Anteil an Ausdrücken in unseren Code schreiben werden. Wie wir gesehen haben, passen Ausdrücke und kurze Single-Exit-Point-Methoden gut zusammen. Die Idee des Else-if-Leiter-Codierungsmusters war es, Zyklen so schnell wie möglich an die CPU zurückzugeben, leicht zu lesen und das Gewirn von verschachtelten IFs zu vermeiden. (Frühmuster zurückgeben) – JavaScript – . . . . . . . .

. . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . .

. . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . . . . . .

. . . . . . . . .

. . . . In der Single Exit Point Version haben wir auch ein kleines bisschen Aufblähung in Form der extra retVal Variable. Wir weisen ihm zu und dann überschreiben, was ein wenig hässlich ist. Ich habe den Eindruck, dass nur ein Ausstieg aus einer Funktion viel besser ist, als mehrere Rückgabeanweisungen zu haben, obwohl der Anwendungsfall für Ihren Vorschlag stark sein könnte, wenn mehrere Rückgabeanweisungen in einer Funktion vorhanden sind. Ist dies unserer früheren Multi-Exit-Version deutlich überlegen? Эта функция понятной и ее имя является описательным, однако она представляется все-же излишне сложной. . . . .

. . . . . . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . . .

. . . Wenn wir z. B. eine else-Anweisung hinzufügen, können wir die einzelne Exit-Version etwas übersichtender machen und das Überschreiben des Anfangswerts beenden. Heutzutage kann eine Funktion bei Verwendung einer Sprache mit Ausnahmen an fast jedem Ort beendet werden. Eine einzige Rückkehr macht also keinen Sinn mehr. Es ist auch interessant, darauf hinzuweisen, dass das derzeitige Verständnis des single exit wahrscheinlich ein Rest der manuellen Ressourcenverwaltung in C oder anderen Sprachen ist. Wenn Sie Ressourcen manuell freigeben müssen, bevor Sie eine Funktion beenden, ist es sehr fehleranfällig, mehrere Exits zu haben. RAII löst dieses Problem auf sehr nette Weise, aber es gibt immer noch Leute, um manuelle neue/löschen zu schreiben. .

. . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . JavaScript, JavaScript, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,”” . . . . .

. . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . . . .

. . . . . . . . .

. . . . . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . .

. . . . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . . .

. . In der Tat ist es ein wenig klarer als die einzelne Exit-Point-Methode. Das klingt ziemlich vernünftig. Wenn eine Methode immer nur von einem Ort verlässt, muss sie leichter richtig zu verstehen sein? Der Unterschied ist gering, aber in der Multi-Exit-Version ist es etwas klarer, was passiert, wenn x nicht größer als 0 ist, wenn der zurückgegebene Wert am Rückgabepunkt deklariert wird. In der Single-Exist-Punkt-Version müssen wir ein paar Zeilen zur Deklaration scannen. Wenn die Methode einfach ist, z.B. Wachkontrollen mit frühen Ausgängen (Ausnahmen bei Vorbedingungsverletzungen, Rückgabe für Sonderfälle), ist sie einfach zu pflegen und ich denke, leichter zu lesen als verschachtelte ifs.

Persönlich finde ich die Multi-Exit-Version viel einfacher zu lesen, aber das liegt zum Teil daran, dass ich an dieses kompaktere Idiom nicht gewöhnt bin. Wenn ich eine Weile so geschrieben hätte, wäre ich wahrscheinlich in der Lage, sinnlich für die ? Version auf einen Blick. Ich war in der Diskussion zwischen “Single Point of Exit” und “Early Return”.