Рекомендации относительно пространств для переменных класса, переменных экземпляра и т. Д. - PullRequest
0 голосов
/ 30 октября 2019

Есть ли руководящие указания относительно места для переменных класса, переменных экземпляра и т. Д.? Например,

class MyModel < ApplicationRecord
  belongs_to :something
  has_many: :something_elses
  validates: :property, presence: true
  after_save :do_something
end

В этом случае я использую в качестве примера запись модели, но я хотел бы понять стандартный стиль для всего. Я использую Rubocop, и он ничего не говорит мне об этом.

Спасибо.

1 Ответ

3 голосов
/ 31 октября 2019

anothermh поделился ссылкой выше (и, к сведению, удивительно, что их фотография профиля изображает Робокопа, когда этот вопрос касается Рубокопа) ... но вот что рекомендации Rubocop для классов предложить:

class Person
  # extend and include go first
  extend SomeModule
  include AnotherModule

  # inner classes
  CustomError = Class.new(StandardError)

  # constants are next
  SOME_CONSTANT = 20

  # afterwards we have attribute macros
  attr_reader :name

  # followed by other macros (if any)
  validates :name

  # public class methods are next in line
  def self.some_method
  end

  # initialization goes between class methods and other instance methods
  def initialize
  end

  # followed by other public instance methods
  def some_method
  end

  # protected and private methods are grouped near the end
  protected

  def some_protected_method
  end

  private

  def some_private_method
  end
end

Как личное примечание: хотя постоянный стиль делает чтение кода быстрее и проще, а другим сканировать то, что вы написали, имейте в виду, что это всего лишь рекомендации «лучших практик». В конце дня все, что работает лучше всего для ВАС, должно быть вашей новой лучшей практикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...