2009年の始まり

@DBFlute
いきなりリリースの0.8.8、これを安定板にしたいと考えています。
バグフィックスや微調整な修正は「0.8.8.x」としてリリースします。
少々重たい修正をした場合は、「0.8.9」とすることもあります。


「0.9.0」にて1.0前の最後の大きな修正をさせて下さい。
二つあります:

 A. Java版とC#版でバージョン運用の分離
 B. Java版allcommonパッケージのJARファイル化

<A>
Java版とC#版は完成度に違いがあります。
同じように作業があるときはよいのですが、
今後は「C#版だけ修正がある」というようなことも考えられます。
そのとき、Java版は変わらないのにバージョンが上がってしまうと
Java版ユーザにとってはやりづらい状況でしょう。また、逆に
Java版の修正が見つかるまでC#版がリリースされないのは
C#版ユーザにとってやりづらい状況でしょう。
今までメンテナンスコストを優先して一緒にしていましたが、
そろそろ分離管理する時期かなと考えました。
「1.0」の時期がJava版とC#版とで違う可能性もあります。

<B>
Java版だけの話ではあります。
現状は、BehaviorやEntityと共にフレームワークも自動生成しています。
フレームワークというのはallcommonパッケージがまさにそれです。

メリット:
 ・デバッグ作業がしやすい
 ・仕組みの理解に役に立つ
 ・依存ライブラリが少なくシンプル

デメリット:
 ・コンパイルスピードの劣化
 ・mydbfluteのSVNコミット・更新が遅い
 ・パッケージエクスプローラでバァァッ
 ・複数DB構成時に別パッケージ同名クラス名がたくさん
 ・フレームワーク内部のメンテコストが高い

今まではメリットを重視しておりましたが、
「1.0」に向けて、DBFluteがさらなる発展を遂げるために
これだけはやらないと、今がやるタイミングであると。
s2dao.jarがdbflute-framework.jar(未定)に差し換わる感じです。
移行は、「JARファイルの追加」と「Eclipseでの一括インポートの編成」
だけで可能になるようにしたいと思います。
(但しクラス名にPrefixを付ける機能を使っている場合はその限りではない)


ドキュメントの整備を行います。
英語のドキュメントも視野に入れて、基盤を整備する予定です。
あらかじめドキュメント内容の設計をし、複数人で作業できる
ような形にしたいと考えております。
ひとまず「DBFluteの提供するサービス」という視点で
その中で「全体最適化」のものを洗い出しています。
...書くことたくさんありますね。頑張ります。
[Total Optimization]

o テーブルのクラスを自動生成する
o 外だしSQLのクラスを自動生成する
o スキーマを作成してテストデータを登録する
o 外だしSQLを一括テストする
o スキーマ情報を眺望する
o 共通カラムを自動設定する
o 区分値をタイプセーフ解決する
o FK制約のない関連テーブルを関連付ける
o 業務的にone-to-oneのテーブルを関連付ける
o 排他制御(楽観的平行性制御)が行われるようにする
o デバッグしやすいログを出力するようにする
o 発行されたSQLを記録する
o 別名(和名)を定義する
o 自動生成時にEclipseを自動更新する
o Viewのクラスを自動生成する
o 古いテーブルの不要なクラスを削除する


o ストアドプロシージャをアプリから呼び出す
o 複数スキーマで利用する
o 複数DBで利用する
o Synonym/Aliasのクラスを自動生成する
o 自動生成されたクラスのauthorを指定する
o 自動生成されたクラスにコピーライトを付与する
o テーブル名にスキーマ名を必ず付与する
o 自動生成時のマッピングの型を調整する


o PKのないテーブルにもInsertできるようする
o PK制約のないテーブルを更新可能にする
o 外だしSQLのファイルエンコーディングを指定する
o 外だしSQLのファイル配置先パッケージを指定する
o データベース依存のメソッドを生成する
...
その他色々考えています。まだここで語れるほど固まってないものです。
語れる時点でBlogに書いていこうと思います。
とりあえず今日はこんなところで。
なんにせよ悔いがないように頑張っていきたいと思います。