Jiemamyのロードマップ

以前、バージョン番号ポリシー案なんてのを考えていましたが、色々話し合った結果、以下のような感じになりました。

http://sourceforge.jp/projects/jiemamy/wiki/%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%95%AA%E5%8F%B7%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC

これをロードマップとしようと思います。で、現在のJiemamyはフェーズB(開発中状態)の後期におり、ぼちぼちフェーズC(部外者による機能評価、あんな機能も欲しい等の要望受付)に移行しようかという段階です。(この段階を経ることになったので、仕様凍結はもう少し後になります。)

フェーズCは、なるべく多くの人に使用してもらい、使用感などを確認しつつ調整していく段階です。なので、Jiemamyの汎用性を少しでも上げておく必要があります。つまり、多くのRDBMS対応でしょうか。

元々、対応RDBMSに関しては、幅広くをサポートしたいとは思っているので、現在見た目だけは色々対応しているように見えます。しかし現状、マトモに対応ができているRDBMSは、PostgreSQLMySQLのみ(他は未テスト)。そして私は現在担当しているPostgreSQLMySQLで手一杯(むしろ既にキャパオーバー(笑))なので、現状以上のサポートは求めにくい状況です。

幸い、現在一緒に開発して下さっている方が、Oracle と H2 を担当してくれる事にはなっていますが、他(PostgresとMySQL以外)のRDBMSのDialectを作るにあたって、ハードルがあります。

JiemamyのDialectは、

  1. インターフェイス
  2. 一般的な共通実装の抽象クラス(主にTemplate Methodパターンで対応)
  3. RDBMS独自の実装クラス

という感じで構築してあるのですが、2の「一般的な共通実装の抽象クラス」が PostgreSQLMySQL (の差異)しか意識せずに設計されている、というのが問題になっていると思います。(まぁ、対応する予定のSQL方言を細部まで全て知り尽くしていないと、どの部分をテンプレートにして良いかも分からないので、仕方ないといえば仕方ないのですが…。)

はい。まぁ何が言いたいかと言いますと、「煮詰まってます。共同開発者さん募集中!」ってことです(笑)

ソースには日本語でコメントしてありますし、docコメントも(簡単にですが)ほぼ全てのpublic/protectedメソッドについているので、(設計的に読みやすいかどうかは自信ありませんが)コードリーディングは比較的楽だと(いいな、と)思っています(汗)

どうでしょう。