Quando você deve cortar a entrada?


11

Sou estagiário aprendendo muito sobre a indústria fora da academia.

Uma coisa que pensei hoje foi cortar a entrada.

De um lado da moeda, não quero que o usuário / implementador receba constantemente resultados inesperados porque a entrada deles possui muitos espaços; portanto, preciso aparar constantemente a entrada do usuário após cada chamada de função.

Mas, ao mesmo tempo, se eu estiver criando uma biblioteca de API para uso interno aqui no espaço em branco à esquerda / à esquerda do escritório, pode ser crucial para os resultados.

Depois, há casos em que não tenho certeza se os espaços em branco serão importantes ou não.

O grande problema para mim é que me encontro constantemente chamando .trim () em todo lugar no meu código.

Alguém tem alguma dica / regra de ouro ou apenas pensamentos sobre como lidar com determinadas situações?


1
Quando você diz "API" aqui, está falando sobre escrever uma biblioteca ou sobre algum tipo de serviço da Web interno? É um detalhe importante.
Sean McSomething

Na verdade, seria uma Biblioteca Estou construindo (obrigado)
TacticalMin

Isso soa como resposta automática ... se você não tiver certeza de que o espaço em branco não é necessário, provavelmente não deve aparar o texto.
GrandmasterB

Respostas:


13

Nunca apare espaços em branco arbitrariamente em uma API.

O único motivo para aparar arbitrariamente os espaços em branco é como um recurso da interface do usuário. As pessoas frequentemente deixam espaços no final dos campos inseridos, mas não conseguem ver que o fizeram. É bastante confuso retornar uma mensagem, portanto - exceto nos raros casos em que um usuário pode digitar "A" para significar algo diferente de "A" - você geralmente pode abandonar espaços inúteis.

Mas os computadores não adicionam espaços por engano, eles adicionam espaços porque um programador disse a eles e, se eles interromperem a implementação da API, você deve devolver um erro ao desenvolvedor. Se não, então você deve apenas usá-los.

É claro que existe a possibilidade de que esses dados sejam provenientes de humanos por meio de um aplicativo, mas esse é o problema do desenvolvedor do aplicativo, não o seu. Novamente, se eles lhe causarem um problema, rejeite-os; caso contrário, aceite-os. Não os apare e assuma que seu consumidor sabe que isso vai acontecer.


Obrigado por responder. Você resumiu o que todo mundo parece estar dizendo.
TacticalMin

3

Um princípio útil aqui é YAGNI : "Você não vai precisar". O que isto significa é que, quando você tem uma idéia para um recurso que você não tem certeza que você realmente precisa, não implementá-lo até que você está certo de que você precisar. Então, quando a necessidade disso se tornar aparente, os locais em sua base de código onde é realmente necessário também devem ser aparentes.


1

Depende para o que a entrada será usada. Se você estiver cortando o espaço em branco dos dados inseridos como um termo de pesquisa, entendo por que você está fazendo isso. É um bom hábito aprender a não confiar nos dados que entram no sistema. Estou pensando principalmente na injeção de SQL, mas também há outros aspectos.

Talvez você não precise aparar sempre a entrada, mas definitivamente deve sempre verificar a entrada.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.