¿Cuándo debe recortar la entrada?

11

Estoy aprendiendo mucho sobre la industria fuera de la academia.

Una cosa en la que pensé hoy fue el recorte de entrada.

En un lado de la moneda, no quiero que el usuario / implementador reciba constantemente resultados inesperados porque su entrada tenía demasiados espacios, por lo tanto, necesito recortar constantemente la entrada del usuario después de cada llamada a la función.

Pero al mismo tiempo, si estoy creando una biblioteca API para uso interno aquí en la oficina, los espacios en blanco finales / finales pueden ser cruciales para los resultados.

Luego hay casos en los que no estoy seguro de si el espacio en blanco será importante o no.

El gran problema para mí es que me encuentro CONSTANTEMENTE llamando a .trim () en todas partes en mi código.

¿Alguien tiene algún consejo / regla general o simplemente piensa en cómo manejar ciertas situaciones?

TacticalMin
fuente
1
Cuando dices "API" aquí, ¿estás hablando de escribir una biblioteca o estás hablando de algún tipo de servicio web interno? Es un detalle importante.
Sean McSomething
Realmente sería una biblioteca que estoy construyendo (gracias)
TacticalMin
Esto parece una respuesta automática ... si no está seguro de que no se necesita el espacio en blanco, probablemente no debería recortar el texto.
GrandmasterB

Respuestas:

13

Nunca recorte espacios en blanco arbitrariamente en una API.

La única razón para recortar espacios en blanco arbitrariamente es como una función de IU. Las personas con frecuencia dejan espacios al final de los campos ingresados, pero no pueden ver que lo hayan hecho. Es bastante confuso devolver un mensaje, por lo que, excepto en el raro caso en que un usuario pueda ingresar "A" para significar algo diferente a "A", generalmente puede deshacerse de cualquier espacio inútil.

Pero las computadoras no agregan espacios por error, agregan espacios porque un programador les dijo que lo hicieran, y si rompen la implementación de su API, debe devolver un error al desarrollador. Si no lo hacen, entonces solo debes usarlos.

Existe, por supuesto, la posibilidad de que estos datos provengan de un ser humano a través de una aplicación, pero ese es el problema del desarrollador de la aplicación, no el suyo. Nuevamente, si te van a causar un problema, rechazalas; si no, acéptelos. No los recorte y suponga que su consumidor sabe que sucederá.

pdr
fuente
Gracias por tomarse el tiempo de responder. Resumiste lo que todos los demás parecen estar diciendo.
TacticalMin
3

Un principio útil aquí es YAGNI : "No lo vas a necesitar". Lo que significa es que, cuando tenga una idea para una función que no está seguro de que realmente necesitará, no la implemente hasta que esté seguro de que la necesita. Luego, cuando la necesidad se hace evidente, los lugares en su base de código donde realmente es necesario también deberían ser evidentes.

Mason Wheeler
fuente
1

Depende de para qué se va a utilizar la entrada. Si está recortando espacios en blanco de los datos que se ingresaron como un término de búsqueda, entonces puedo entender por qué lo está haciendo. Es un buen hábito aprender a no confiar en los datos que ingresan a un sistema, estoy pensando principalmente en la inyección SQL, pero también hay otros aspectos.

Es posible que no necesite recortar siempre la entrada, pero definitivamente siempre debe verificarla.

Daniel Hollinrake
fuente