Quand faut-il couper l'entrée?


11

Je suis stagiaire en train d'apprendre des tonnes sur l'industrie en dehors du monde universitaire.

Une chose à laquelle j'ai pensé aujourd'hui était de couper l'entrée.

D'un côté de la médaille, je ne veux pas que l'utilisateur / implémenteur reçoive constamment des résultats inattendus parce que leur entrée avait trop d'espaces, donc je dois constamment couper les entrées utilisateur après chaque appel de fonction.

Mais en même temps, si je crée une bibliothèque d' API à usage interne ici, au bureau, les espaces de fuite / de tête peuvent être cruciaux pour les résultats.

Ensuite, il y a des cas où je ne sais pas si les espaces seront importants ou non.

Le gros problème pour moi est que je me retrouve constamment à appeler .trim () partout dans mon code.

Quelqu'un a-t-il des conseils / règles de base ou simplement des réflexions sur la façon de gérer certaines situations?


1
Lorsque vous dites "API" ici, parlez-vous d'écrire une bibliothèque ou parlez-vous d'une sorte de service Web interne? C'est un détail important.
Sean McSomething

Ce serait en fait une bibliothèque que je construis (merci)
TacticalMin

Cela semble répondre automatiquement ... si vous n'êtes pas sûr que l'espace blanc n'est pas nécessaire, vous ne devriez probablement pas rogner le texte.
GrandmasterB

Réponses:


13

Ne coupez jamais les espaces de manière arbitraire dans une API.

La seule raison de supprimer un espace de manière arbitraire est la fonctionnalité d'interface utilisateur. Les gens laissent souvent des espaces à la fin des champs saisis mais ne peuvent pas voir qu'ils l'ont fait. Il est assez déroutant de renvoyer un message, donc - sauf dans les rares cas où un utilisateur peut entrer "A" pour signifier autre chose que "A" - vous pouvez généralement abandonner tous les espaces inutiles.

Mais les ordinateurs n'ajoutent pas d'espaces par erreur, ils ajoutent des espaces parce qu'un programmeur leur a dit, et s'ils cassent votre implémentation d'API, vous devriez renvoyer une erreur au développeur. S'ils ne le font pas, vous devez simplement les utiliser.

Il est bien sûr possible que ces données proviennent d'un être humain via une application, mais c'est le problème du développeur d'application, pas le vôtre. Encore une fois, s'ils vont vous causer un problème, rejetez-les; sinon, acceptez-les. Ne les coupez pas et ne supposez pas que votre consommateur sait que cela se produira.


Merci d'avoir pris le temps de répondre. Vous avez résumé ce que tout le monde semble dire.
TacticalMin

3

Un principe utile ici est YAGNI : "Vous n'en aurez pas besoin." Ce que cela signifie est que, lorsque vous avez une idée pour une fonctionnalité que vous n'êtes pas sûr de vous réellement besoin, ne met pas en œuvre jusqu'à ce que vous êtes sûr que vous en avez besoin. Ensuite, lorsque le besoin s'en fait sentir, les endroits dans votre base de code où cela est réellement nécessaire doivent également être apparents.


1

Cela dépend de l'utilisation de l'entrée. Si vous supprimez des espaces blancs à partir de données entrées comme terme de recherche, je peux comprendre pourquoi vous le faites. C'est une bonne habitude d'apprendre à ne pas faire confiance aux données entrant dans un système, je pense principalement à l'injection SQL mais il y a aussi d'autres aspects.

Vous n'aurez peut-être pas besoin de toujours couper l'entrée, mais vous devriez toujours vérifier l'entrée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.