ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ソースコードジェネレータコミュのblancoFrameworkについて

  • mixiチェック
  • このエントリーをはてなブックマークに追加
blancoFrameworkってソースコードジェネレータを使ったことがある人、感想を聞かせてください。
これ、すごく良さげなんですけど・・

@ITの記事
http://www.atmarkit.co.jp/fjava/special/blanco/blanco_1.html

Eclipse Babel Project
http://www.eclipse.org/babel/

sourceforge
http://sourceforge.jp/projects/blancofw/

いがぴょんのblancoEclipseBabelプロジェクト
http://www.igapyon.jp/igapyon/diary/2008/ig080129.html

コメント(6)

調査したことはあります。
シートと定義ファイルを食わせたらソースを出力してくれるものを探していたので、そういう意味では求めていたものとは違った。

ブランコフレームワークとセットのジェネレータなので、このソリューションが気に入ったのなら良いかもしれない。自前のフレームワークに摘要するのは改造が必要かと思われる。

実際に何をやってるかはsourceforge から適当なパッケージを1こ落として中を見たらなんとなく掴めますよ。
エンジンはJExcelApi。
各ジェネレータ毎にJavaでコードがゴリゴリ書いてある。
カスタマイズするには、提供されているソースに手を入れる必要がある。

Eclipse Babel Project はジェネレータと関係なさげ。
なんだ、そうだったんですね。
まだ@ITの記事しかちゃんと読んでなくて勝手に妄想してました。
POIを進化させた感じのものかとばかり・・・。

うーん、やっぱりPOIで十分だなぁ。

# 調査の価値はありそうだけど

ちなみに、なかのさんがPOI+XMLでジェネレータ開発するのは汎用性や保守性がいいからですか?
僕はPOIだけで十分かなぁと思っていたのですが…。
テンプレートの記述は、1時間もかからない。
Javaだとデバッグが必要だし、コンパイルが必要だし、作業が効率的ではない気がします。
自動生成の根本である「楽したい」の精神に反している気がします。

テンプレートの欠点は、難しいことは出来ないです。例えば、セルの情報を元に、DB上の項目マスタを参照して補完するとか・・・。
まあ、拡張タグをプラグイン出来るような仕掛けを作ればいいんだけど・・・。

話は逸れますが、起動用のGUIを持ったWindowsアプリもエンジンとは別にあるんですよ。
そっちにテンプレートを追加するだけで、ジェネレータが出来あがるので、
比較的気軽にジェネレータを増やしています。

今自動生成しているのは、以下のファイル
・アクションクラス(スケルトン)
・JSPファイル(スケルトン)
・フォームクラス(スケルトン)
・フォームのデータを格納したエンティティクラス
・ボタンの情報を格納したクラス
・コード定義クラス(タイプセーフEnum)
・Struts設定ファイル
・Tiles設定ファイル
・画面情報定義ファイル
・メッセージ定義ファイル

フレームワークに自動生成したものを設置すると、動くわけです。
(フレームワークは案件毎にカスタマイズしていますが)
ビジネスロジックを実装するプログラマは、
本当にビジネスロジックだけ実装する感じです。

昔DAOの自動生成もしていたのですが実行効率優先の実装にしていたので、
プロジェクトで推奨するDAOと異なる実装方法になってました。
プログラマが自動生成したDAOを真似して書いたりするので、
DAOの自動生成は廃止しました。

> 自動生成の根本である「楽したい」の精神に反している気がします。
ぐぉぉ!
その通りでございます。

だいぶ資産持ってますねー。
ちなみにJSPテンプレートって何枚くらい持ってるんでつか?
パレートの法則で推測するなら8割の画面が2割の苦労でってことですから、全部で100枚の画面なら、そのうち80枚がジェネレートされていてそれに使うテンプレートは20枚ってことになる。
とすれば、資産としてもつJSPテンプレートは30枚くらいか。あとは、プロジェクト度にカスタマイズすればいけちゃうし。

まさか、当たり?

ちなみに、Jetってエンジンを前に使ってました。。
用語に齟齬がある気がします。

テンプレートと私が呼んでいるものは、XSLTに似た形式で記述された、xmlファイルです。
自作のエンジンが、このテンプレートファイルの内容を元に、指定したExcelファイルの内容を、出力します。

Excelファイルは、自動生成する為の既定のフォーマットがあります。
プログラマが画面を作成する場合、「詳細設計書」というExcelファイルに「入出力項目定義」「ボタン・イベント定義」というワークシートの雛型を追加し、編集を行います。

そしてこの「詳細設計書」にJSPファイルを生成する為のテンプレートを指定して、エンジンを起動すると、JSPファイルのスケルトンが自動生成されます。
struts-confingを生成するテンプレートを指定すると、struts-confingファイルが生成されます。

自動生成用の自作Windowsアプリでは、複数のテンプレートによる変換を、一連のジョブにしているので、ジョブとExcelファイルを指定して実行すると、山ほどファイルが出来ます。

さて、JSPファイルを生成するテンプレートですが、これはプロジェクトに対して1種類です。100画面あれば、100個のExcelファイルが作られて、1個のテンプレートによって、100個のJSPのスケルトンファイルが作られます。スケルトンファイルはプログラマによってモディファイされます。


JetはJetspeedのことですか?

情報ありがとうございます。参考になりました。
それにしてもいい仕掛けですね。

テンプレートのネタは別トピ立てます。
今日は眠いので後日。

> JetはJetspeedのことですか?

Jetspeedは知らないんですが、コメント4のJetは
http://codezine.jp/a/article.aspx?aid=111
のJetです。
超簡単です。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

ソースコードジェネレータ 更新情報

ソースコードジェネレータのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。