内部構造的な話

MOE は私が初めて作った CGI である。なにぶん初めてなのでかなりお粗末な構造をしている。

主要なクラスは下記の四つ。

  • DiplomacyMOE
    index.rb から直接起動されるメインのクラス。CGI パラメータによる処理の分岐制御を主とする。
  • Game
    API 的な機能を提供することを想定して作成されたクラス。大抵の処理はこのクラスを経由する。
  • DBProxy
    MySQL へのアクセスを担当するクラス。SQL の発行は全てこのクラスを経由する。
  • Resolver
    行軍命令を解決するクラス。

あとはページ別に表示を制御するクラスとかごちゃごちゃあるが大体こんな感じ。

まず DiplomacyMOE クラスが担当すべき機能が明確になっていないのが気に入らない。CGI パラメータの解析とかセッション管理とかログイン制御とか Diplomacy そのものに直接関係ない処理はまずここに突っ込まれるのでカオス。また根幹処理を Game クラスに、DB アクセスを DBproxy クラスにそれぞれ押し込んだ結果、思惑とは逆に処理を追いにくくなったのが気に入らない。画面毎に微妙に異なる処理が必要になる度にその場しのぎでメソッドを増やしていったせいでまさにカオス。なにより名前が気に入らない。ちょっとは考えろよ。もう見れば見るほどにカオス。仮に公開できるとしたら Resolver クラスだけか。RSpec の spec ファイルまできちんと用意されているのはこいつくらいだ。

ぐう。いつか丸ごと作り直したい。


カオス<CHAOS> DTSスペシャル・エディション [DVD]

カオス DTSスペシャル・エディション [DVD]