https://gall.dcinside.com/mgallery/board/view/?id=github&no=31551


f(Long accountId, int accountToken)


vs


f(Account account)


뭐가 더 나음?

갠적으로 후자로 하는 듯. 함수 내에서 맥락도 분명해지고 가독성도 높아지니까..

요즘 pc 성능이 매우 좋으니 파라메터 좀 더 커졌다고 해서 문제될 것도 없는 것 같음


접두사 붙이는 것도 별로 안 좋게 생각함


의견 공유좀


-------------------------------------------------------------------------------------------


윗글에 대한 답글임

며칠전 글 뒤늦게 봄


일단 기본은 직관적임

전자처럼 필요로 하는 멤버들만 따로따로 넘겨줄 경우는 원본 Account와 결합되지 않는다는 장점이 있음

반면 Account 객체를 통채로 넘길때는 향후 Account의 다른 멤버드를 활용할때도 함수 원형을 수정하지 않을 수 있다는 장점이 있음


결국 중요한건 f가 얼마나 Account에 의존적인 함수이느냐임

f의 로직 안에서 Account 멤버들의 의미가 양념 수준이라면 전자로 가는게 맞고

그렇지 않다면 후자로 가는게 맞음

특히 f가 거의 Account의 멤버들만을 가지고 지지고 볶는 수준이라면

f는 자유함수나 다른 클래스의 메소드가 아닌 Account의 메소드였어야 맞을지도 모름


한발 더 나아가면 Account에서 특정멤버들조합이 다른 함수들에서 반복적으로 쓰인다면

클래스를 쪼개는게 맞을지도 모른다

Account가 너무 많은 책임을 가진다는 사인이다


코딩 스타일로 일반화시킬 수 있는 것이라기보다는 설계가 어떻게 되어있느냐의 문제임