Rubyのクラスメソッドがリファクタリングに抵抗する理由(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Why Ruby Class Methods Resist Refactoring 原文公開日: 2012/11/14 著者: Bryan Helmkamp サイト: https://codeclimate.com/ Rubyのクラスメソッドがリファクタリングに抵抗する理由(翻訳) 私の記事『肥大化したActiveRecordモデルをリファクタリングする7つの方法』に対して、「クラスメソッドでできることをなぜわざわざインスタンスでやるんですか?」という質問をよくいただきました。お答えしましょう。要するに以下が理由です。 私がクラスメソッドよりオブジェクトインスタンスを好む理由は、クラスメソッドはリファクタリングに抵抗するからです。 詳しく説明するために、データを外部アナリティクスサービスと同期するバックグラウンドジョブを例に取ることにします。次をご覧ください。 class SyncToAnalyticsService ConnectionFailure = Class.new(StandardError) def self.perform(data) data = data.symbolize_keys account = Account.find(data[:account_id]) analytics_client = Analytics::Client.new(CC.config[:analytics_api_key]) account_attributes = { account_id: account.id, account_name: account.name, account_user_count: account.users.count } account.users.each do |user| analytics_client.create_or_update({ id: user.id, email: user.email, account_admin: account.administered_by?(user) … Continue reading Rubyのクラスメソッドがリファクタリングに抵抗する理由(翻訳)