Myślę, że jest to ważny temat, ale otrzymujesz mieszane odpowiedzi ze względu na sposób, w jaki powstało pytanie. Osobiście miałem te same doświadczenia ze swoim zespołem, w których przekazywanie członków jako argumentów było niepotrzebne i zawijało kod. Mielibyśmy klasę, która działa z zestawem elementów, ale niektóre funkcje mają bezpośredni dostęp do elementów, a inne funkcje modyfikują te same elementy za pomocą parametrów (tj. Używają zupełnie innych nazw) i nie ma absolutnie żadnego technicznego powodu. Z technicznego punktu widzenia mam na myśli przykład podany przez Kate.
Radziłbym cofnąć się o krok i zamiast skupiać się na przekazywaniu członków jako parametrach, zainicjuj dyskusje ze swoim zespołem na temat przejrzystości i czytelności. Albo bardziej formalnie, albo tylko na korytarzach, przedyskutuj, co sprawia, że niektóre segmenty kodu są łatwiejsze do odczytania, a inne segmenty kodu trudniejsze. Następnie określ miary jakości lub atrybuty czystego kodu, o które jako zespół chciałbyś dążyć. W końcu, nawet podczas pracy nad projektami typu green field, spędzamy ponad 90% czasu na czytaniu i jak tylko kod zostanie napisany (powiedzmy 10-15 minut później), przechodzi on do konserwacji, gdzie czytelność jest jeszcze ważniejsza.
Tak więc w twoim konkretnym przykładzie użyłbym argumentu, że mniej kodu jest zawsze łatwiejsze do odczytania niż więcej kodu. Funkcja, która ma 3 parametry, jest trudniejsza do przetworzenia dla mózgu niż funkcja, która nie ma żadnego lub jednego parametru. Jeśli istnieje inna nazwa zmiennej, mózg musi śledzić jeszcze jedną rzecz podczas czytania kodu. Więc pamiętajmy „int m_value”, a następnie „int localValue” i pamiętajmy, że jeden naprawdę oznacza, że drugi jest zawsze droższy dla mózgu niż praca z „m_value”.
Aby uzyskać więcej amunicji i pomysłów, polecam zabranie kopii Czystego Kodu Wujka Boba .