こないだの木曜日、
「株式会社アットウェア」さんの社内勉強会にて、
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/
#