Quando dovresti tagliare l'input?

10

Sono stagista che sta imparando tonnellate sull'industria al di fuori del mondo accademico.

Una cosa a cui ho pensato oggi è stata l'aggiunta di ritaglio.

Da un lato della medaglia non voglio che l'utente / implementatore riceva costantemente risultati inaspettati perché il loro input ha troppi spazi, quindi ho bisogno di tagliare costantemente l'input dell'utente dopo ogni chiamata di funzione.

Ma allo stesso tempo Se sto creando una libreria API per uso interno qui in ufficio, lo spazio trailing / leader può essere cruciale per i risultati.

Poi ci sono casi in cui non sono sicuro se lo spazio bianco sarà importante o meno.

Il grosso problema per me è che trovo COSTANTEMENTE chiamare .trim () ovunque nel mio codice.

Qualcuno ha qualche consiglio / regola generale o solo pensieri su come gestire certe situazioni?

    
posta Man 26.09.2013 - 22:27
fonte

3 risposte

12

Non tagliare mai gli spazi bianchi arbitrariamente in un'API.

L'unica ragione per tagliare arbitrariamente lo spazio bianco è come una caratteristica dell'interfaccia utente. Le persone lasciano spesso spazi alla fine dei campi inseriti ma non riescono a vedere che lo hanno fatto. È piuttosto complicato restituire un messaggio, quindi, tranne nel caso raro in cui un utente possa inserire "A" per indicare qualcosa di diverso da "A", di solito puoi abbandonare qualsiasi spazio inutile.

Ma i computer non aggiungono spazi per errore, aggiungono spazi perché gli è stato detto da un programmatore e se interrompono l'implementazione dell'API dovresti restituire un errore allo sviluppatore. Se non lo fanno, dovresti semplicemente usarli.

Esiste, naturalmente, la possibilità che questi dati provengano da un essere umano tramite un'applicazione, ma questo è il problema dello sviluppatore dell'applicazione, non il tuo. Di nuovo, se ti causano un problema, respingili; se no, accettali. Non tagliarli e presumi che il tuo consumatore sappia che accadrà.

    
risposta data 27.09.2013 - 04:15
fonte
3

Un principio utile qui è YAGNI : "Non ne hai bisogno." Ciò che significa è che, quando hai un'idea per una funzione che non sei sicuro di aver effettivamente bisogno, non implementarla finché non sei sicuro di averne bisogno. Quindi, quando il bisogno di farlo diventa evidente, dovrebbero anche essere evidenti i posti nella base di codice in cui è effettivamente necessario.

    
risposta data 26.09.2013 - 22:41
fonte
1

Dipende da cosa verrà utilizzato l'input. Se stai tagliando lo spazio bianco da dati che sono stati inseriti come termine di ricerca, allora capisco perché lo stai facendo. È una buona abitudine imparare a non fidarsi dei dati che entrano in un sistema, sto pensando principalmente a SQL Injection ma ci sono anche altri aspetti.

Potresti non aver bisogno di tagliare sempre l'input ma devi sempre controllare l'input.

    
risposta data 27.09.2013 - 00:25
fonte

Leggi altre domande sui tag