Я думаю, що це вагома тема, але причина, коли ви отримуєте неоднозначні відповіді, пов’язана з тим, як формувалося питання. Особисто я мав той самий досвід роботи зі своєю командою, коли передавати членів, оскільки аргументи були непотрібними і перекручували код. У нас був би клас, який працює з набором членів, але деякі функції отримують доступ до членів безпосередньо, а інші функції модифікують ті самі члени за допомогою параметрів (тобто використовують абсолютно інші назви), і для цього абсолютно не було технічних причин. Під технічною причиною я маю на увазі приклад, який надала Кейт.
Я рекомендую зробити крок назад і замість того, щоб концентруватися саме на проходженні членів як параметри, ініціювати обговорення зі своєю командою щодо чіткості та читабельності. Більш формально або просто в передпокої обговоріть, що ускладнює деякі сегменти коду легше для читання, а інші - для кодових сегментів. Потім визначте міри якості або атрибути чистого коду, до якого ви хотіли б прагнути як команда. Зрештою, навіть працюючи над проектами зеленого поля, ми витрачаємо більше 90% часу на читання, і як тільки код пишеться (скажімо, через 10-15 хвилин), він переходить до обслуговування, де читабельність стає ще важливішою.
Тож для вашого конкретного прикладу тут аргумент, який я б використав, полягає в тому, що менше коду завжди легше читати, ніж більше коду. Функція, яка має 3 параметри, мозку важче обробити, ніж функція, яка не має жодного або 1 параметра. Якщо є інша назва змінної, мозок повинен відслідковувати ще одну річ, читаючи код. Тож пам’ятайте «int m_value», а потім «int localValue» і пам’ятайте, що одне дійсно означає, що інше завжди дорожче для вашого мозку, а потім просто робота з «m_value».
Щоб отримати більше боєприпасів та ідей, я рекомендував би забрати копію чистого кодексу дядька Боба .