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