ブログ

読んで思い出す。忘れるために書く

定数を外部からアクセス不能にする(参考リンク)

方法

Module#private_constant を使う

class MyClass
  MY_CONSTANT = 'Value'
  MY_CONSTANT_B = 'Value B'
  private_constant :MY_CONSTANT, :MY_CONSTANT_B
end

まとめ

Private constants in Ruby というページを見た

いろんな状況の中から、たとえばマジックナンバー撲滅のために定数に書き出すという場面があるとおもう

でもそれがクラスやモジュール、その内部だけで扱われるなら、外部から見えなくする...コードとして明示的に書くことで、「3ヶ月後の自分」が「ああコレは内部的に扱うだけなんだな」と、どこまで使われているのか、その範囲をスッと理解できるようになると思う

「3ヶ月後の自分」: コードを書きはしたものの、どういう意図でキモチで設計で書いたのかを忘れてしまった状態を指す; もう一度思い出すのにコードを読んで理解する必要があり、一定以上の時間を要する

Links