オルタナティブ・ブログ > An Agile Way >

アジャイルに行こう!

JUDE と Ruby on Rails の連動

»

牛尾さんが、

「Judeのクラス図からActiveScaffoldのコードを自動生成する 」
-Jude/LuRuJu/JRuby/ERBを用いたActiveScaffoldのソース自動生成プログラム

http://codezine.jp/a/article/aid/1929.aspx

という記事を、codezine で書いています。これで、JUDEで描いたクラス図から、Ruby on Rails で簡単なDB連動のWebアプリケーションが作れるようになります。

中身は、牛尾さんが作成した、ツールの解説(ソースコードつき)で、JUDE のAPIを用いて、クラス図で作成したデータ構造を取り出し、Ruby on Rails で動くデータベースと ActiveScaffold を自動生成するものです。このツールでは、次のようにツールが内部で利用されています。

  • JUDE: データベースのスキーマをUML記述するグラフィックなツール
  • LuRuJu(野村さん作): JUDE API を、Rubyらしい記述でJRuby から叩くツール
  • ERB(咳さん作): Ruby でテキストファイルに Ruby スクリプトを埋め込むツール(Ruby標準添付)

Ushio_3 これらを使って、今回、牛尾さんは scaffold_generator.rb というツールを作りました。JUDEのクラス図から、LuRuJu を使ってデータスキーマを引き抜き、ERBを使って、マイグレーションとActiveScaffold を自動生成する、ということです。イメージは、図を見てもらうと沸きやすいと思います。

JUDEで描いたクラス図が、どのようなコードに落ちるかが分かると思います(一部)。

このツールはいくつか見所があります。このツールを見て、ぼくなりにいくつか感じたことを上げてみたいと思います(このツールの利用者側ではなく、開発側の視点で)。

  • 独自のデータ構造を中で作っている。
    これは、ツールを作るときに迷ったと思われる設計なのですが、こうしておくことで、作者の意図がよくコードに表現される、これからのバージョンアップに作者側で対応できるようになる、などの利点があります。
  • 多対多の関連にまで対応している。
    結構これがあると複雑になるはずで、最初にここまで実現たおかげで、単なるトイ・ツールでなく、ある程度実用性を出せていると思います。
  • LuRuJu という比較的最近できたツールを利用している。
    ベータ版、というくらいのツールでも、積極的に他のツールに任せるところは任せています。LuRuJuもJUDEも日本製、ということも、文化的に情報を得やすかったこともあるでしょう。(あ、ERBもRubyも、もちろん日本製ですが、それらは既に世界的評価を得られている状況!)
  • Rubyのパワー
    やはり Rubyは S/N 比(コードに占める、やりたいこと、が書かれている割合)が高い。さらに、ERBなどのツールが豊富なことが、開発を楽しく、やりやすくしています。

というところでしょうか。でも、一番感動的なのは、このツールを「作りたくて作った」という牛尾さんの意気込みが強く出ているところだと思います。作りたいものを作る。。。当たり前でいて忘れてしまいがちなエンジニア魂が燃えます。

どんどん世の中の役に立つ、よいツールが出てくるとうれしい!

Comment(0)