Esiste un nome per la tecnica di conversione dei parametri del metodo in una forma unificata per semplificare l'ulteriore elaborazione? [chiuso]

2

Quando si lavora con metodi che accettano un parametro in varie forme (ad esempio nil , una singola stringa, una singola stringa contenente più dati o una matrice di stringhe), tendo a unificarli, suddividendoli, disinfettandoli e inserendoli in un array perché semplifica ulteriormente l'elaborazione e rimuove la necessità di controlli nil, type e size.

esempio (in Ruby):

params = Array(original_param).map { |a| a.split(/\s*,\s*/) }.flatten
params.each{|p| process(p)}

Tuttavia, non ho idea di cosa sto facendo , almeno Non ho idea se c'è un nome per quello che sto facendo. C'è?

    
posta kostja 17.09.2014 - 16:30
fonte

3 risposte

3

I termini più comuni per questo sono canonicalisation e normalizzazione . In matematica, un modulo normale è un modo standard per rappresentare un oggetto con più rappresentazioni equivalenti. Ad esempio, queste due espressioni logiche sono uguali:

¬x ∨ ¬y ∨ ¬z

¬(x ∧ y ∧ z)

Ma il primo è in modulo normale disgiuntivo mentre il secondo non lo è.

Nella programmazione, di solito parliamo di canonicalizzazione solo quando esiste una rappresentazione canonica singolare, ad esempio, su un file system (ignorando gli hard link), la rappresentazione canonica del percorso a cui fa riferimento ../bar potrebbe essere /foo/bar . In altri casi, dove la scelta della forma normale è arbitraria, la normalizzazione è il termine preferito.

Nel contesto della sicurezza, sanitizzazione si riferisce alla normalizzazione allo scopo di rendere innocuo l'input dannoso. Questo di solito consiste nell'imporre la separazione della lingua tramite l'escape di caratteri speciali o l'utilizzo di funzionalità di sistema di tipo.

    
risposta data 17.09.2014 - 20:36
fonte
2

La frase che stai cercando è tokenization e, come hai notato, è un processo molto comune per disinfettare i parametri di input .

Dall'articolo Wikipedia collegato:

Tokenization is the process of breaking a stream of text up into words, phrases, symbols, or other meaningful elements called tokens. The list of tokens becomes input for further processing such as parsing or text mining.

    
risposta data 17.09.2014 - 18:50
fonte
1

In Microsoft, il termine che ho sentito molto per questo è stato "Legoing", come in "I Legoed, che fa schifo codice spaghetti in un bel po 'di codice gestibile".

Penso che sia molto simile a quello che stai chiedendo, semplicemente non so quanto sia "portatile" per Lego fuori MSFT. Non sono un grande fan di " verbo di un nome ", ma sembra adattarsi qui .

    
risposta data 17.09.2014 - 20:03
fonte

Leggi altre domande sui tag