プロの技を盗める
01
・責務分割
・delegate(移譲)
・||= (自己代入)
・DI(依存性注入)
・開発Contextごとの実装の違い
class User
attr_reader :id
delegate :name, to: :profile
def initialize(id)
@id = id
end
private
def profile
@profile ||= ::Profile.new(self)
end
end
class Profile
def initialize(user)
@user = user
end
def name
"#{@user.id}: konchan"
end
end