Wann sollten Sie die Eingabe kürzen?

11

Ich bin Praktikant und lerne viel über die Branche außerhalb der Wissenschaft.

Eine Sache, über die ich heute nachgedacht habe, war das Trimmen von Eingaben.

Auf der einen Seite der Medaille möchte ich nicht, dass der Benutzer / Implementierer ständig unerwartete Ergebnisse erhält, da seine Eingabe zu viele Leerzeichen enthält. Daher muss ich die Benutzereingabe nach jedem Funktionsaufruf ständig kürzen.

Aber zur gleichen Zeit Wenn ich hier im Büro eine API- Bibliothek für den internen Gebrauch erstelle, kann ein nachfolgendes / führendes Leerzeichen für die Ergebnisse entscheidend sein.

Dann gibt es Fälle, in denen ich nicht sicher bin, ob Leerzeichen wichtig sind oder nicht.

Das große Problem für mich ist, dass ich ständig .trim () überall in meinem Code aufrufe.

Hat jemand irgendwelche Tipps / Faustregeln oder nur Gedanken darüber, wie man mit bestimmten Situationen umgeht?

Mann
quelle
1
Wenn Sie hier "API" sagen, sprechen Sie über das Schreiben einer Bibliothek oder über eine Art internen Webdienst? Es ist ein wichtiges Detail.
Sean McSomething
Es wäre tatsächlich eine Bibliothek, die ich
Man
Das klingt selbstantwortend ... Wenn Sie nicht sicher sind, ob der Leerraum nicht benötigt wird, sollten Sie den Text wahrscheinlich nicht zuschneiden.
Großmeister

Antworten:

13

Schneiden Sie Leerzeichen in einer API niemals willkürlich.

Der einzige Grund, Leerzeichen jemals willkürlich zu kürzen, ist eine UI-Funktion. Menschen lassen häufig Leerzeichen am Ende der eingegebenen Felder, können jedoch nicht sehen, dass sie dies getan haben. Es ist ziemlich verwirrend, eine Nachricht zurückzugeben. Außer in dem seltenen Fall, dass ein Benutzer "A" eingibt, um etwas anderes als "A" zu bedeuten, können Sie normalerweise alle nutzlosen Leerzeichen entfernen.

Computer fügen jedoch nicht versehentlich Leerzeichen hinzu, sondern Leerzeichen, weil ein Programmierer sie dazu aufgefordert hat. Wenn sie Ihre API-Implementierung beschädigen, sollten Sie dem Entwickler einen Fehler zurückgeben. Wenn nicht, sollten Sie sie einfach verwenden.

Es besteht natürlich die Möglichkeit, dass diese Daten über eine Anwendung von einem Menschen stammen, aber das ist das Problem des Anwendungsentwicklers, nicht Ihres. Wenn sie Ihnen ein Problem bereiten, lehnen Sie sie ab. Wenn nicht, akzeptiere sie. Schneiden Sie sie nicht zu und gehen Sie davon aus, dass Ihr Verbraucher weiß, dass dies passieren wird.

pdr
quelle
Vielen Dank, dass Sie sich die Zeit genommen haben, um zu antworten. Sie haben zusammengefasst, was alle anderen zu sagen scheinen.
Mann
3

Ein nützliches Prinzip hier ist YAGNI : "Du wirst es nicht brauchen." Wenn Sie eine Idee für eine Funktion haben, von der Sie nicht sicher sind, ob Sie sie tatsächlich benötigen, implementieren Sie sie erst, wenn Sie sicher sind, dass Sie sie benötigen. Wenn sich dann herausstellt, dass dies erforderlich ist, sollten auch die Stellen in Ihrer Codebasis erkennbar sein, an denen dies tatsächlich erforderlich ist.

Mason Wheeler
quelle
1

Es hängt davon ab, wofür der Eingang verwendet wird. Wenn Sie Leerzeichen aus Daten entfernen, die als Suchbegriff eingegeben wurden, kann ich verstehen, warum Sie dies tun. Es ist eine gute Angewohnheit zu lernen, Daten, die in ein System gelangen, nicht zu vertrauen. Ich denke hauptsächlich an SQL Injection, aber es gibt auch andere Aspekte.

Möglicherweise müssen Sie die Eingabe nicht immer kürzen, aber Sie sollten die Eingabe auf jeden Fall immer überprüfen.

Daniel Hollinrake
quelle