Czy istnieją obiektywne, obsługiwane argumenty inżynierii oprogramowania przemawiające za lub przeciw modyfikowaniu wartości parametrów według wartości w treści funkcji?
Powtarzający się splot (głównie w dobrej zabawie) w moim zespole polega na tym, czy parametry przekazywane przez wartość powinny być modyfikowane. Kilku członków zespołu jest przekonanych, że nigdy nie należy przypisywać parametrów, tak aby wartość pierwotnie przekazana do funkcji zawsze mogła zostać zapytana. Nie zgadzam się i utrzymuję, że parametry są niczym więcej jak lokalnymi zmiennymi inicjowanymi przez składnię wywołania metody; jeśli oryginalna wartość parametru według wartości jest ważna, to można zadeklarować, aby zmienna lokalna wyraźnie zapisała tę wartość. Nie jestem pewien, czy którekolwiek z nas ma bardzo dobre poparcie dla naszej pozycji.
Czy jest to nierozwiązywalny konflikt religijny, czy też istnieją dobre, obiektywne powody inżynierii oprogramowania w obu kierunkach?
Uwaga: Kwestia zasady pozostaje bez względu na szczegóły implementacyjne danego języka. Na przykład w JavaScript, gdzie lista argumentów jest zawsze dynamiczna, parametry można traktować jako cukier składniowy do inicjalizacji zmiennych lokalnych z arguments
obiektu. Mimo to można traktować identyfikatory zadeklarowane jako „specjalne”, ponieważ nadal przechwytują przekazywanie informacji od osoby dzwoniącej do odbiorcy.