Ich lese Clean Code von Robert C. Martin und der Satz kommt TILT
unerklärlicherweise in einigen Codebeispielen vor. Beispiel (übrigens in Java):
...
public String errorMessage() {
switch (status) {
case ErrorCode.OK:
// TILT - Should not get here.
return "";
case ErrorCode.UNEXPECTED_ARGUMENT:
return "Unexpected argument";
case ErrorCode.MISSING_ARGUMENT:
return "Missing argument";
...
}
...
Aus dem Kontext bezeichne ich TILT
einen Status, der nicht erreichbar ist und nur zur Erfüllung des Compilers enthalten ist (z. B. wird im obigen Code TILT
in dem ErrorCode.OK
Fall angezeigt , weil es keine Fehlermeldung geben sollte, wenn der Status vorliegt OK
), aber Ich bin mir nicht sicher.
Weiß jemand, wofür TILT
steht / bedeutet?
java
clean-code
comments
conventions
Kyle Lin
quelle
quelle
Antworten:
Physische Flipperautomaten enthalten Sensoren, die erkennen, wenn etwas außerhalb versucht, den Weg des Balls zu stark zu beeinflussen, indem sie den Automaten anstoßen oder kippen. (Ich sage hier zu viel , weil Flipper eine lange Tradition haben, dass ein gewisses Maß an Bewegung akzeptabel ist, insbesondere wenn der Ball an etwas aufgehängt wird.) Wenn die Maschine in den gekippten Zustand versetzt wird, ist alles, was dem Spieler mehr Punkte bringen könnte deaktiviert, bis der Ball vom Boden des Tisches fällt. Dies wird normalerweise von einem "Tilt" -Licht im Spiel und manchmal einem Warnsummer begleitet. Betrachten Sie es als das Flipper-Äquivalent zum Auslösen einer Ausnahme.
Martins Metapher ist angespannt, weil sie
ErrorCode.OK
vermutlich gültig iststatus
und nicht etwas, das versucht, die Funktion dazu zu zwingen, etwas zu tun, was sie nicht tun sollte. Mit anderen Worten, diese Eingabe versucht nicht, die Funktion dazu zu bringen, die Fehlermeldung für ein fehlendes Argument zurückzugeben.Der Rest beantwortet Ihre Frage nicht, kann aber Anlass geben, den Rest des Buches kritisch zu lesen. Ich habe keinen Zugriff auf das Buch, um zu sehen, ob der Text, der dieses Beispiel umgibt, von Hand winkt, aber wenn nicht, führt die Methode Dinge aus, die dem Titel nicht gerecht werden:
Erstens behandelt es vermutlich ungültige Eingaben oder Zustände nicht als Ausnahmebedingung und beschwert sich darüber. Wenn in der Dokumentation der Methode angegeben ist, dass sie nur aufgerufen werden soll, wenn sich das Objekt
status
in einem Fehlerzustand befindet, handelt es sich eindeutig um ein logisches Problem im aufrufenden Code, das korrigiert werden muss.Zweitens wird eine Zeichenfolge zurückgegeben, die genauso gültig ist wie alle anderen, aber effektiv als magische Konstante dient. Ein Aufrufer, der wissen möchte, ob das Aufrufen der Methode ein Fehler war, muss den Inhalt des Rückgabewerts überprüfen oder ihn munter an den Menschen weitergeben, der ihn liest, um ihn zu entschlüsseln (z. B.
Operation result:
ohne zusätzliche Informationen).Ein optionales Drittel wäre, dass, wenn der Compiler eine vollständige Abdeckung der aufgezählten Werte erwartet, die Verwendung
default
zum Abfangen der nicht abgedeckten Fälle viel besser lesbar ist, als sie einzeln oder in einer Gruppe aufzählen zu müssen. (Die Filp-Seite ist, dass es möglicherweise besser ist, den Compiler sich beschweren zu lassen, damit das Hinzufügen eines zweiten, fehlerfreien Status den Programmierer dazu zwingt, explizit zu erklären, wie damit umgegangen werden soll.)quelle