Esistono argomenti oggettivi, supportati da ingegneria del software a favore o contro la modifica dei valori dei parametri di valore nel corpo di una funzione?
Uno sputo ricorrente (per lo più di buon divertimento) nella mia squadra è se i parametri passati o meno devono essere modificati. Un paio di membri del team sono fermamente convinti che i parametri non dovrebbero mai essere assegnati, in modo che il valore originariamente passato alla funzione possa sempre essere interrogato. Non sono d'accordo e ritengo che i parametri non siano altro che variabili locali inizializzate dalla sintassi di chiamare il metodo; se il valore originale di un parametro di valore è importante di una variabile locale può essere dichiarato per memorizzare esplicitamente questo valore. Non sono sicuro che nessuno di noi ha un ottimo supporto per la nostra posizione.
Si tratta di un conflitto religioso non risolvibile o ci sono buone ragioni per l'ingegneria del software in entrambe le direzioni?
Nota: la questione del principio rimane indipendentemente dai dettagli di implementazione della lingua specifica. In JavaScript, ad esempio, dove l'elenco degli argomenti è sempre dinamico, i parametri possono essere considerati come zucchero sintattico per l'inizializzazione della variabile locale dall'oggetto arguments
. Anche così, uno potrebbe considerare gli identificatori dichiarati dai parametri come "speciali" perché catturano ancora il passaggio di informazioni dal chiamante al chiamato.