내 친구와 또 다른 논쟁. - 왜 #in_group처럼바로 가기 방법을 추가하거나 ActiveRecord 의미를 따르십니까?
class User < ActiveRecord::Base
has_many :groups
def in_group?(group)
groups.include?(group)
end
end
class Group < ActiveRecord::Base
has_many :members
def add_user(user)
members << user
end
end
내 의견이 방법은 코드에 여분의 불필요한 복잡성을 추가하고 거의 추측 할 수 있다는 것입니다 :이 코드를 생각해? #is_a_member_of?가 아닌 #add_user가 #add_member가 아닌 이유 등이 있습니다. Rails에 대한 4 년 경력과 총 20 년의 프로그래밍 경험을 통해, 나는 AR 의미를 따르고 User # groups.include? (그룹) 및 Group # members < < 사용자를 사용하는 것이 좋습니다. 그것들은 쉽게 추측 할 수 있으며 몇 가지 추가 기능이 필요하면 has_many : 회원에 대한 콜백을 사용하고 User # groups.include를 재정의 할 수 있습니까? 협회 확장 모듈에 필요하다면
그러나 친구는 "추상화 지점"을 만드는 데 바로 가기를 사용하는 것이 더 좋으며 콜백 또는 오버로드를 사용하는 대신이 코드를 확장하는 것이 더 낫다고 주장합니다.
당신은 어떻게 생각합니까?
P. 그냥 명확하게, 나는 뭘 "접근"접근 방식이 싫어 :
#in \ _group을 쉽게 생각할 수 있습니까? #member \ _of입니까? –
물론 그 이름을 지을 수 있습니다. 당신은 또한 Enumerable # map을 Enumerable # transform으로 이름을 바꿀 수 있습니다.하지만 뭐라 구요? 그렇다고이 방법이 존재해서는 안된다는 의미는 아닙니다. – Chuck