- 請優先以業務類型的複數命名。
- 在業務類型下,以 3rd party provider 名稱或子業務作細項區分。
/services
/domain_names
/godaddy
/connect_callback_service.rb
/ssl
/create_certificate_service.rb
/check_domain_cname_service.rb
/check_custom_domain_service.rb
- 以動詞開頭。
/services
/images
/crop_service.rb
/orders
/deduct_stock_service.rb
/process_payment_service.rb
- 檔名為動詞,故一律使用
run
作為執行方式。
::DomainNames::ChangeCanonicalNameService.new(merchant, new_name).run
請統一用 ActiveJob 的 DSL 撰寫,避免用 Sidekiq 的 worker 形式。
- 請優先以 3rd party provider 名稱命名。
/jobs
/salesforce
/sync_merchant_job.rb
- 其次以業務類型的複數命名。
/jobs
/products
/update_product_images_job.rb
- 以動詞開頭。
/jobs
/intercom
/sync_order_event_job.rb
- DSL 規定一律是定義
perform
,執行時則是用perform_later
::Intercom::SyncProductEventJob.perform_later(current_user.id, Time.zone.now.to_i)