Slide 13
Slide 13 text
Devinのレビュー:Before
Jobがビジネスロジックを持って肥大化している例
class ExternalService::Contact::BulkUpdateUserNameJob < BaseJob
sidekiq_options queue: :low_priority
def perform(contact_ids_cache_key)
# ...
external_service_contacts.each do |contact|
updated_name_attrs = user_name_attributes(contact)
# ... (ビジネスロジックの一部)
bulk_update_payload << ExternalService::Schemas::Bulk::Contact.new(
id: contact.object_id,
properties: updated_name_attrs
)
# ... (さらにビジネスロジック)
end
# ...
end
private
def user_name_attributes(contact) # 本来モデルにあるべきロジック
# ...
end
13