Existe-t-il des arguments objectifs et supportables en ingénierie logicielle pour ou contre la modification des valeurs des paramètres par valeur dans le corps d'une fonction?
Un problème récurrent (surtout pour le plaisir) sur mon équipe est de savoir si les paramètres passés par valeur doivent être modifiés. Quelques membres de l'équipe sont convaincus que les paramètres ne doivent jamais être attribués, de sorte que la valeur initialement transmise à la fonction peut toujours être interrogée. Je ne suis pas d'accord et maintiens que les paramètres ne sont rien de plus que des variables locales initialisées par la syntaxe d'appel de la méthode; si la valeur d'origine d'un paramètre par valeur est importante, une variable locale peut être déclarée pour stocker explicitement cette valeur. Je ne suis pas sûr que chacun de nous soutienne très bien notre position.
S'agit-il d'un conflit religieux non résolu ou y a-t-il de bonnes raisons objectives d'ingénierie logicielle dans les deux sens?
Remarque: La question de principe demeure indépendamment des détails de mise en œuvre de la langue particulière. En JavaScript, par exemple, où la liste des arguments est toujours dynamique, les paramètres peuvent être considérés comme du sucre syntaxique pour l'initialisation de variable locale à partir de l' arguments
objet. Même ainsi, on pourrait traiter les identificateurs déclarés par paramètres comme "spéciaux" car ils captent toujours le passage d'informations de l'appelant à l'appelé.