Gibt es objektive, unterstützbare Argumente für das Software-Engineering für oder gegen das Ändern der Werte von By-Value-Parametern im Hauptteil einer Funktion?
Ein wiederkehrender Spucke (meistens mit viel Spaß) in meinem Team ist, ob die vom Wert übergebenen Parameter geändert werden sollen oder nicht. Einige Mitglieder des Teams sind fest davon überzeugt, dass niemals Parameter zugewiesen werden sollten, damit der ursprünglich an die Funktion übergebene Wert immer abgefragt werden kann. Ich bin anderer Meinung und bin der Meinung, dass Parameter nichts anderes als lokale Variablen sind, die durch die Syntax des Aufrufs der Methode initialisiert werden. Wenn der ursprüngliche Wert eines By-Value-Parameters wichtig ist, kann eine lokale Variable deklariert werden, um diesen Wert explizit zu speichern. Ich bin nicht zuversichtlich, dass einer von uns seine Position sehr gut unterstützt.
Ist dies ein nicht lösbarer religiöser Konflikt oder gibt es gute, objektive Gründe für das Software-Engineering in beide Richtungen?
Hinweis: Die Grundsatzfrage bleibt unabhängig von den Implementierungsdetails der jeweiligen Sprache. In JavaScript beispielsweise, wo die Argumentliste immer dynamisch ist, können Parameter als syntaktischer Zucker für die Initialisierung lokaler Variablen aus dem arguments
Objekt betrachtet werden. Trotzdem könnte man von Parametern deklarierte Bezeichner als "speziell" behandeln, da sie immer noch die Weitergabe von Informationen vom Anrufer an den Angerufenen erfassen.