Userをクラスにするんじゃなくて名簿をクラスにしよう

K-enq.tdのユーザ管理用にUserクラスを書き始めたんだけど、なんか釈然としないところがあって、なんなんだろうなあと思っていたら、クラスにするべきはUserではなくてその名簿なのではないかと思いついたのでした。だって、Userという個別のユーザを表現するクラスが、ユーザテーブルが存在しなかったらテーブルを作って、それが空ならアドミニストレータ相当のユーザを作ってというのはおかしすぎます。

というのを、Exceptionを用意している途中で思いました。

というわけで、Userは破棄して明日から名簿クラスを作ることにします。仮にそれをRosterクラスとすると、Roster.exists(ユーザID)で、ユーザが存在するかが確認できる。Roster.get_list()でユーザ一覧を得られる、Roster.count()でユーザ数が得られるなど、多分このほうがスマートだろうなあ。

などと思っています。というか、そんなの常識というか、普通はそうするだろうといわれそうな気もしますが、実際、私も以前Perlで作ってたユーザ認証付のアンケートシステムでは、UserListクラスを作ってたりして……、そうか私は退化してたのか……。ちょっとショックな話でありました。