Чи існують об'єктивні, підтримувані програмно-інженерні аргументи за або проти зміни значень параметрів побічного значення в тілі функції?
Повторний плювок (здебільшого приємно) в моїй команді полягає в тому, чи слід змінювати параметри, передані за значенням, чи ні. Кілька членів команди переконані, що параметри ніколи не повинні призначатися, так що значення, яке спочатку передалося функції, завжди можна було допитати. Я не згоден і вважаю, що параметри є не що інше, як локальні змінні, ініціалізовані синтаксисом виклику методу; якщо вихідне значення параметра значення є важливим, ніж локальна змінна може бути оголошена для явного зберігання цього значення. Я не впевнений, що будь-хто з нас має дуже гарну підтримку своєї позиції.
Це нерозв’язний релігійний конфлікт, чи є хороші об'єктивні причини інженерії програмного забезпечення в будь-якому напрямку?
Примітка: Питання про принцип залишається незалежно від деталей реалізації конкретної мови. Наприклад, у JavaScript, де список аргументів завжди динамічний, параметри можуть розглядатися як синтаксичний цукор для ініціалізації локальної змінної з arguments
об'єкта. Незважаючи на це, можна визначити ідентифікатори параметрів як "особливі", оскільки вони все ще фіксують передачу інформації від абонента до виклику.