ウルシステム's DBFlute

渋谷から、赤坂見附で永田町乗り換え、
そして月島で降りて晴海トリトンへ...
明らかにルートを間違えた感のあるjfluteです。

こないだの月曜日、
「ウルシステムズ株式会社」の社内勉強会にて、
DBFluteの出張講演会をさせて頂きました!



ぼくは、プログラマーになって間もない頃から、
その名は知っていました。

ウルシステムズさんが監訳されていた、
アリスター・コーバーンの、
「ユースケース実践ガイド
 効果的なユースケースの書き方 (OOP Foundations)」
これをよく読んでいました。
若い頃、要件定義をするのにチームみんなで読み、
その記憶から、ぼくがやった若手研修で(簡単ではありますが)
要件定義を教えるのに使わせて頂きました。

既に名前を知っていることもあり、
業界の知識が増えていく中で耳にする機会も多く...

よもやその会社の方々に、
DBFluteのお話ができるなんて!

ちょっと感動的な...そんな感じです。
とはいえ、それだけにプレッシャーは強大なもの。
色々なレイヤの人がいることが想定され、
DBFluteなんぞほとんど知りもしないだろうと。

「だれだこいつ?」

みたいな感じの空気を想像しながら現場に入りました。

ビルに着く前に、ビリージョエル (Billy Joel) の、
「All for Leyna」を聴いていました。
そういう気分だったんですね。
最高の集中力、これをくれた人にありがとう。

DBとアプリの架け橋 DBFlute

というタイトルで、技術者だけでなく、
マネジメント視点でも有益さを感じられる
DBFluteを紹介いたしました。

DBサイドとアプリサイドの隙間(すきま)、
これを少しでも無くすにはどうすればいいか?
DBFluteにできることはなんだろうか?

しゃべりまくりました。

...
...
い、いやっ...実装しまくりました(^^。

Eclipseなしではプレゼンができないjfluteですが、
同時にDBFlute開発の「実装ムード」を伝えたい
という思いもありまして...。
強い思いを機能として実現するためのリズム、
これがモノづくりを続ける上で大事なものであると。

とにかく、伝えたい、
なんとかして耳を傾けてもらいたい、
という思いで語らせて頂きました。


さて、補足させて頂きます。
ご紹介したいわゆる「O/RマッパーじゃないDBFlute」ですが、
これを「Alto DBFlute (あるとDBFlute)」と呼んでいます。
それ専用のトップページも存在するのです。

// Alto DBFlute
http://dbflute.seasar.org/ja/introduction/altodbflute.html

やはり、一番の手軽な機能はドキュメントの自動生成!

SchemaHTML : テーブル定義HTML
HistoryHTML : DB変更履歴HTML

「まずはこれだけを使う」というのであれば、
GUIだけでの簡単インストールがオススメです。

// DBFlute Intro
http://dbflute.seasar.org/ja/manual/function/helper/intro/index.html

そして、SchemaSyncCheckもできます。
二つのDBへの接続情報だけちょっと我慢して入力すれば、
dbflute-intro経由で実行できてしまいます。

これらは、アプリに影響を与えない単なるツールとして
利用できるので、導入障壁も低いものかと思います。

「とりあえずローカルだけで個人で使ってる」
なんてことも聞いたことありますし...
まあもちろん、みんなで共有できれば最高ですよね。

その後、さらに発展した機能が使いたくなったら、
裏で展開されているDBFluteを直接さわって、
dfpropファイル(設定)たちを修正していって、
どんどん高機能な機能へステップアップしていければと。

ズバリ、ReplaceSchemaですね!

これが整備されたら開発者は、
「地味にガラリと」世界が変わると思います。

// ReplaceSchema
http://dbflute.seasar.org/ja/manual/function/generator/task/replaceschema/

そういえば、
講演中にちょっと触れたテストデータのお話、
こちらのページです。

// テストデータ
http://dbflute.seasar.org/ja/manual/topic/dbdesign/testdata.html
もちろん、チャンスさえあれば、
O/RマッパーとしてのDBFluteをガツっと使えたら、
システム開発の強力な武器になるでしょう。

まあそうなったら、プログラマー向け勉強会を
やりますから遠慮なく呼んでください(^^
「安全で速い実装」を実感してもらえるかと思います。

そういえば、プロシージャの呼び出しのことが、
ほとんど話せなかったので、ここでリンクしておきます。

ストアドプロシージャの中のselect文に対応するDTOも
自動生成しますよ。さっくりJavaからストアドを呼び出します。

// プロシージャコール
http://dbflute.seasar.org/ja/manual/function/genbafit/implfit/procedurecall/

Oracleの配列・構造体パラメータだっていけます。
(これはかなりいっちゃってる系ですが...必要なときは必要で)

// Oracleの配列・構造体パラメータ
http://dbflute.seasar.org/ja/manual/reference/dbway/oracle/oraclearraystruct.html

わからないことがあったら、
「まったく」遠慮なく聞いてください。
それが日本のオープンソースの特徴ですから。

// Twitter の jflute
https://twitter.com/jflute

// そして、DBFluteメーリングリスト
https://groups.google.com/forum/#!forum/dbflute

というか、実際に使うとなったら、またトリトン行きますよ(^^。
終わった後の懇談会ありがとうございました。
皆様とお話しできてとっても楽しかったです!
また、普通にお会いしてお話したいですねーなんて(^^。

そして、ごちそうさまでした。
あと、たばこの煙へのご配慮ありがとうございました。
すごく快適にみなさまとの技術話に没頭できました。
(ぼくは煙が苦手なもので...)

書けばキリがないほど、驚きと喜びと湧き出ていました。
「最高の集中力」で臨んだ甲斐がありました。
みなさまのフィードバック、そしてリアクション、
これらがすべてぼくの次のパワーになります。

しゃべってる最中は「ヒットしてるかなぁ」と、
不安になってドキドキしているものなのですが、

「ビンゴ過ぎるものばかり」

と後で言ってもらえて、とってもうれしいです。
(本来は悲しいことなんでしょうけどねw、
 みんなつらい思いをしてるってことで...

また、ぜひお会いしましょう!
さて...

「DBFluteは語れば良いものだと思ってもらえる」
その確信は得ながらも、
一方で、その「マニアックぶり」には歯止めがかからない。
ほとんどの人が知らない、
もしくは、名前だけで触ったこと無い、
なんだかんだ、まだまだそういう感じ。

「ぼくはもっと色々と考えて行動していかないといけない」

そう思い、

気を引き締めて、また集中力を高めるのでした。



...
...
...
おまけー

講演を聞いてくださった皆様、
以下のリンク先の写真に注目してみてください。

// レインボーの「Rawスムージーhttp://d.hatena.ne.jp/jflute/20110707/1310044752