ログ日記

作業ログと日記とメモ

複数形と単数形

何となくクラス名の複数形が気になって調べた。ついでにディレクトリ名も。

  • 複数形のクラス名をつけるときは
    • あるモデルを複数格納するジェネリックなコンテナである場合。(例: javax.naming.directory.BasicAttributes)
    • スタティックなユーティリティメソッドを格納するクラスの場合。
      • あるモデルにしか関係しないメソッドの集合体の場合は、そのモデルの名前を冠する (例: java.util.Arrays)
      • ほんとに行き場のないメソッドの集まりの場合は Utils とする。
クラス名の命名規則 - あのね、Util なの? Utils じゃないの? - muddy brown thang

RailsCakePHPはDBのテーブル名を複数にしてモデルを単数形にするなど、そういうルールがしっかりしているらしい。


ディレクトリについて。

例えば、昨日の日記の画像のURLは

http://www.aizu.com/blog/archives/images/photo-20070130-162719-0.jpg

ですが、これにはかなり改善の余地があります。
a. 途中のディレクトリ名が "images", "archives" のように複数形になっていますが、ディレクトリは同じカテゴリに属するファイル (またはディレクトリ) を集約する概念なので、形容詞的な命名 (単数形) をすべき。("photos album" ではなく "photo album"、"songs list" ではなく "song list" と表現するのと同じ理由から。 ) そもそも、ディレクトリが「何かの集合」であることは分かり切ったことであり、複数形を用いるのは (一般に) 文字数を増やすという意味でも冗長です。

冗長な表現 - Eyes, JAPAN Blog

これは…何だか難しい。英語に慣れてる人なら習慣で分かるんだろうか。
モノが複数入るという状態を名前にするのか、機能としてのラベルを名前にするのか。


例えばcomponentディレクトリについて言えば、コンポーネントが複数入っているならcomponents、そのディレクトリ以下で一つのコンポーネントを形成するならcomponent、が分かりやすいんじゃないかと思う。
普段英語を使ってないのに何が自然かを考えても埒が明かないのでひとまずこれで。



あとテストディレクトリ。

test/unit/testcases
    /functional/web
               /cui
tests/unitTest1
     /unitTest2

こんなイメージだろうか。役割をラベル付けするのか中の状態を表すのか。


複数の構成を切り替えるための設定ファイルはconfigs.ini、一つのシステムを一つのファイルで設定するならconfig.ini、複数の構成要素ファイルがあるディレクトリは…それ全てでシステム全体を設定しているならconfig?…やっぱり難しい。