Esistono argomenti oggettivi e sostenibili di ingegneria del software a favore o contro la modifica dei valori dei parametri per valore nel corpo di una funzione?
Uno sputo ricorrente (per lo più divertente) nel mio team è se i parametri passati per valore debbano 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 per valore è importante rispetto a una variabile locale, può essere dichiarato per memorizzare esplicitamente questo valore. Non sono sicuro che nessuno di noi abbia un ottimo supporto per la nostra posizione.
Si tratta di un conflitto religioso non risolvibile o esistono buone ragioni oggettive di ingegneria del software in entrambe le direzioni?
Nota: la questione del principio rimane a prescindere dai dettagli di implementazione di quel particolare linguaggio. In JavaScript, ad esempio, dove l'elenco degli argomenti è sempre dinamico, i parametri possono essere considerati zucchero sintattico per l'inizializzazione della variabile locale arguments
dall'oggetto. Anche così, si potrebbero considerare gli identificatori dichiarati da parametri come "speciali" perché catturano ancora il passaggio di informazioni dal chiamante alla chiamata.