Quando si utilizzano molti parametri considerati utilizzando troppi parametri?

0

Faccio molta programmazione nella mia classe. È solo il mio primo semestre, e la maggior parte delle mie cose sono recensioni. Ho iniziato a utilizzare una funzione verifyInput per garantire che gli input dell'utente corrispondano a determinati criteri. Dal momento che finisco per utilizzare verifyInput così tanto, continuo a venire con più modi per migliorarlo ed espanderlo. Al momento, il mio codice ha un aspetto simile al seguente:

function verifyInput(foo, match, response = ": is not a valid input.") {
    const input = foo()
    if (!isNaN(input) && !input || input === null || input === undefined) {
        if (input === null) {
            return null;
        }
        else {
            alert("Not valid.");
        }
        return verifyInput(foo, match, response);
    }
    else {
        if (match && !match(input)) {
            alert("(" + input + ")" + response);
            return verifyInput(foo, match, response);
        }
        else {
            return input;
        }
    }
}

userInput = verifyInput(() => prompt("Input?"), (x) => x > 10 ? true : false)

Funziona come un fascino. Spesso penso a nuove cose da aggiungere ad esso. Recentemente stavo considerando l'aggiunta di un parametro aggiuntivo per modificare la stringa di output. Forse voglio che l'utente sia in grado di inserire numeri come stringhe digitate invece di valori normali. Un utente può inserire "seven" e convalida e restituisce 7.

Dopo un po 'di riflessione mi sono reso conto che potevo usare la mia funzione match sia come validatore che come modificatore di output. Tuttavia faccio questo genere di cose molto quando lavoro su vecchie e nuove funzioni. Ero curioso di sapere che tipo di linee guida e di altre tecniche usano per gestire le loro funzioni e parametri. Inoltre, come li organizzi?

    
posta Ucenna 18.10.2016 - 03:21
fonte

1 risposta

4

I do a lot of functional programming in my class.

Che cosa intendi con questo? La programmazione funzionale è estremamente vaga. Per favore descrivi cosa tu pensi significhi. Stai usando JavaScript, che non ha un fantastico supporto per lo stile funzionale. Quindi sei già un po 'limitato dalla lingua che stai utilizzando.

OK, per entrare nel nocciolo del problema: non stai definendo ciò che vuoi che facciano le tue funzioni. In pratica stai solo mettendo tutta la logica che riesci a pensare in una singola funzione. Questo è un cattivo design.

A user could input "seven" and it would validate and return 7.

Questo non sta convalidando l'input, lo sta trasformando. Non farlo in una funzione chiamata verifyInput .

verifyInput è già estremamente vago; ovviamente, non esiste una singola funzione che convalida tutti gli input in tutti i programmi. Ecco perché nessuna libreria standard avrebbe una funzione verifyInput nella sua libreria standard. Quella funzione ha senso solo in un contesto specifico: quale input stai verificando? Una volta capito, saprai come progettare il tuo metodo. A

I was curious what sort of guidelines and techniques others use to manage their functions and parameters. Also, how do you organize them?

L'unità organizzativa è una funzione della lingua che stai utilizzando. In Java sono le classi; in OCaml è moduli. Fino a poco tempo fa, JavaScript non disponeva di supporto per l'organizzazione del codice, ma ES6 lo ha infine aggiunto sotto forma di moduli.

    
risposta data 18.10.2016 - 03:30
fonte

Leggi altre domande sui tag