今後の課題
Wikiにも書きましたがActiveGatewayの今後のアップデートに関して残項目を挙げてみます。
- メソッド名をcamelCaseにする。
- 毎回テーブルのカラム名を取得するんではなくて、一度取得したものをconfigディレクトリ以下にキャッシュできるようにする。(設定ファイルで強制的に毎回カラム名取得するモードとか、取得済みならかならずキャッシュを使うモードといったものを制御できるようにしたい)
- プライマリキーはかならずオートインクリメントだということでつくっちゃってるのでそのあたりはもっと柔軟性を持たせる。
- レコード生成時刻、更新時刻を自動的にアップデートできる機能を追加する。
- destroyやdeleteを実行したときに、関連テーブルに対する処理を行っていないので、必要に応じてできるようにする(ActiveRecordのdependentオプションへの対応)
- PEAR::ErrorStackとPEAR::Logを使用してエラー処理・ロギングの仕様を固める。(これはMaple本体のCaseStudyになればいいなと思っています。)
- find系メソッドの第一引数に指定している仮想テーブル名に対応するファイルがcomponents以下にあった場合にはそれを自動的に使うようにする。もし規約どおりの場所でないクラスファイルを使いたい場合には設定ファイルに「class_name = xxx」と指定するようにする(もちろん規約どおりの場所ってのを確定しないと・・・)
- 更新系メソッドに関してActiveRecord同様before_create/before_saveといったようなある程度のフック処理を入れれるようにしておく。
- eachメソッドで取得する際に全て取得するのではなくて、1件ごとに取得したり、10件先読みするというようなことができるようにする(そのための伏線は既にいれてある)。
- DBアクセスをキャッシュできるようにする。
- ADOdbやネイティブ関数版といったようなものを作りやすいような構造を検討する。
- PostgreSQLでしかテストをしてないので他のDBでもテストする。
- 引き続きActiveRecordを調べて便利な機能は取り込む。
こういうのがあったほうがいいんじゃない?というのがありましたらこちらもコメントお願いします。