すごい抽象的なタイトルだが実際困った事があったのでメモ
例
例えば拡張現実(Augmented Reality)のモデルを表現するクラスを作るとする。そうするときにar_model.rbというファイル名で、中身を以下のように書く。
class ARModel include ActiveModel::Model attr_accessor :name, :type end
ただ、以下のようにもかける
class ArModel # 後略
これはクラス名だけではなくモジュール名でも同じことが起きるので、ディレクトリ設計やファイル命名では気をつけること。
起きうる問題
例えば
app/model/ar_model/tree.rbapp/model/ar_model/house.rb
などとおいた場合に class ARModel::Tree と class ArMode::House というような書き方が混在可能なので、一見するとわかりにくい問題を生む。ただちに実害はないが、コードが成長するにつれてわかりづらさは増すので最初のうちにどちらで実装するかは決めておくほうがよい。