LoginSignup
0
1

More than 5 years have passed since last update.

Ruby|privateメソッドをどう定義するか

Last updated at Posted at 2017-05-07

行数にボリュームが出ると、あれ?プライベートは・・・と探すことが多いです。(私だけ?)
クラス(モジュール)の中に何箇所もprivateを使っていて、ハマったことが過去にあります。

class Company
  # パブリックメソッドがたくさん
  # ...
  # ...
  # ...

  private
  # よくよく見ずにprivateをつけたりしてアクセサが全滅・・・
  def this_is_private_method
  end
  # ...
  # ...
  # ...

  attr_accessor :name

  private
  # プライベートメソッドがたくさん
end

company = Company.new
company.name = "Hoge Co.,Ltd." #=> NoMethodError!!

ベストプラクティスだとは思っていませんが、私がよくやるのは
privateのあとにコメントをつけてなるだけ目立つようにしています。
これだと、重複してprivateを使うことも少なくなるかなと

class Hoge
  # パブリックメソッドゾーン
  private #---------------なるだけ目立つ仕切りを作る-------------------#
  # プライベートメソッドゾーン
end

あと、Ruby2.X系からdefがシンボルを返すようになったので1つずつ指定してあげるのもよいかもしれませんね。

class Hoge
  private def sample; end
end

hoge = Hoge.new
hoge.sample #=> NoMethodError!!
0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1