DBFlute出張講演会あっとアットウェア

こないだの木曜日、
「株式会社アットウェア」さんの社内勉強会にて、
DBFluteの出張講演会をさせて頂きました!



「オープンソース DBFlute」という内容で、
DBFluteの概念と機能紹介をしつつも、
そのオープンソースとしてのバックグラウンドや
特徴的なエピソードをまじえてお話させて頂きました。

なにせ、DBFluteの全く未踏の地、
そういう企業様で講演会をするのは初めてでした。
(いつもはコミュニティとかで話をするのが多いので)
それはもう緊張しましたよね。
緊張というか...自然と気が集中していく感じ。

ビルに着く前に、ビリージョエル (Billy Joel) の、
「All About Soul」を聴いていました。
講演会の前のいつもの儀式、今回はこの曲でした。
そう、「魂」を込めたかったのです。



みなさん、とても真剣な表情で話を聞いてくれました。
また、ときには笑顔を魅せてくれたり。
おかげで僕もとてもしゃべりやすかったです。

アットウェアさんは、ホームページを見るとわかりますが、
アジャイル開発を前面にオープンな文化に親しい素敵な会社です。
実際に触れ合うとさらにそれを実感することができました。
 -> 株式会社アットウェア: アジャイル開発

 o オープンソース開発に必要な七つの力(りょく)
 o プロダクトのそばにいることの大切さ
 o ない時間はどこから?

今後もこういうことを語っていきたいと思います。
オープンソースのプロダクトに対する視点がさらに深まって、
より一層楽しく便利に利用できるようになっていくかなって。
講演会でリクエストしてもらった検索で、
実際に使った機能の補足説明をさせて頂きますね。

#
# (Specify)DerivedReferrer (子テーブルの導出絡む)
#
実はこれが、DBFluteの強力な武器となっています。
業務では本当に頻繁に使う相関サブクエリ、
シンプルな検索でもちょっと集計っぽいカラム表示したり、
そういうときにサクっとスピーディーに書けてしまうので、
現場では重宝されています。

これがあるからこそ、多くの検索を ConditionBean で
こなすことができるという一つの要因になっています。

#
# Classification (区分値)
#
DBFluteの古来からある、DBFluteを象徴する機能です。
こういった業務依存の扱いづらい領域にもアプローチしています。

しっかり使っている現場では、区分値プロブレム、
(大昔によくあった)区分値によるディベロッパーのストレス、
これらがほとんどなくなっているのを目の当たりにしています。

#
# FromToOption (日付の範囲検索)
#
ほとんど、jflute の趣味!? って言っても過言では...
いやいや、アプリのバグの中で日付周りは特に多いもの。
特に Java は日付が扱いづらいもの。

プログラムでは「目的を指定」して、
それを実現するための手段はDBFluteが。
そんな感じの日付条件ライフでできるだけ、
という感じです。

#
# 外だしSQL (OutsideSql)
#
せっかく 2Way-SQL で書いてるんだから、
一括して実行して、自動生成できるものは自動生成しちゃおう。
そんな感じです。

そして、徹底して拡張したパラメーターコメント。
FORコメントとか色々ありますが、
エラーメッセージが最大の重要ポイントだと思います。
エラーメッセージ次第で、一分で解決できるものが、
一時間かかってしまう場合もあるわけですから。

ちなみに、この Sql2Entity や OutsideSqlTest ですが、
S2JDBCでも実は利用できますよ。実際にわりと大規模な案件で、
「S2JDBC + DBFlute支援」の構成の実績を知っています。 
詳しくは、dbflute-s2jdbc-example を参考にくださいませ。

#
# なんといってもEclipseのコード補完!
#
これが一番!
なにせ、ConditionBeanのオフィシャルページに、
コード補完を組み込んで説明していますからね(^^。
 -> ConditionBean - コード補完を駆使して実装


#
# DB管理支援ツール「Alto DBFlute」 
#
そして、
評判の良かった SchemaHTML や HistoryHTML など、
ドキュメントの自動生成やDB環境構築の自動化など、
こういった「アプリの外側で活躍する機能」
のためのページを、この土曜日を使って作りました!
きょ、今日は、ディズニーシーではなく、
中目黒のベジレストラン(レインボー)ですよ(^^。

Alto DBFlute

もし、よければぜひ触って頂ければと思います。
「質問」は本当にお気軽に。
Twitter でも DBFluteユーザーの集いML でも、
どこでもいいのです。
オープンソースプログラマーは現場情報を求めてますから。

#
# SAStrutsの拡張モジュール
#
また、懇談会で何人かの人に、
SAStruts の拡張モジュールについてお話させて頂きました。
この時に作ったやつなんですよねぇ...

// SAStrutsと半同棲の三ヶ月 | jfluteの日記
http://d.hatena.ne.jp/jflute/20130302/1362151960

興味持って頂けたようなので、とりあえず本体のソースと、
ExampleプロジェクトのソースのGITリポジトリURLを
貼り付けておきます。

https://www.codebreak.com/git/jflute/dbflute/tree/master/

こちらは、そのうちブログやメーリングリストでしっかりと
公開するつもりです。(まだExampleの画面を微調整中)
実務での実績はばっちりありますからっ(^^。

ここで紹介した PropertiesHTML もバリバリ使ってますので。
 -> PropertiesHTML | DBFlute

#
# DBFluteのアプローチ自体が役に立てば
#
DBFluteを使わないにしても、
DBFluteを知ることで、
「ああ、こういう解決の仕方があるんだぁ」
「というか、そういうのが問題になるんだぁ」
という風に、
問題解決と問題分析につながってくれればと思っています。
それが、DBFluteを伝える目的の一つでもあるのです。

極端な話、DBFluteでなくてもいいから解決すればいい。
ただ、DBFluteは今までにあまりないとても新鮮なやり方で、
現場の問題にアプローチしているつもりです。
DBFluteを使って解決するか、DBFluteを参考に解決するか、
DBFluteで感覚を掴んで分析・解決するか、
何かしら現場のプラスになればなぁと思います。
#
# またお会いしましょう
#
...
...
非常に素敵な出会いと刺激が jflute に染み込みました。
これがまたモチベーションとなって、
さらに前に進むための原動力になっていくのでしょうし、
現場力!この感覚を鍛えるきっかけになるわけです。



本当に本当にありがとうございました。
とってもフレンドリーだったのが印象的です。
またお会いしましょうね。


#
# 【追記】
# アットウェア様の方のブログも必見!
# 
# // DBFlute作者を招き勉強会を開催しました
# http://www.atware.co.jp/2013/06/25/dbflute/
#