Railsについて

モデル駆動(MDD/MDA他)とRuby on RailsやGrailsとの比較記事などあっても良いと思うのですが、ちょっと目につきません。厳密な比較ではありませんが、少し書いてみます。

Rails(RoR/Grails)は基本的にWebアプリケーション開発に特化したRADの枠組みだと思います。もちろん、そのベース言語(Ruby/Groovy)が柔軟なものでないと実現が困難だろうと思います(不可能ではないにしろ)。Webアプリケーション開発の実現手段としてMVCパターンを使っています。一般的なフレームワークでも使われていますが、沢山の設定が必要なためいやになった方もおられたのではないかと思います。この部分を本当に必要な情報だけを書かせ、あちこちに発生していた重複記述を排除することで簡略化に成功しています。そして、MVCのM(モデル)としてドメインモデルを作成することになりますが、この部分がUML等を使ったClassモデリングとの接点になると思います。MVCのC(コントローラ)についても、例えばビジネスプロセス定義に出現するあるステップなりタスクを実現するためコンポーネントやサービスを使うという場合には、その記述場所となり得るため、振る舞い系のモデリングと関連すると思います。

MDD/MDAの場合、確かにモデリングから始めますが、例えM2MとM2Tを適用しても最終的に生成されるコードには手を加える必要がある(例えばビジネスロジックまではモデル化しないと思います)のが普通です。そういう意味で、どの段階からコード主体に移行するか、ということが違いの一つのようです。コード中心に考えるとRailsのアプローチの方が現実的かもしれません。ただ、MDD/MDAではドメイン知識をグラフィカルなモデルとして表現し次世代に引き継ぐことが出来るため、例えば10年後に新人が見たとしてもある程度中身が分かると思われます。コードで表現した場合は、10年後にどんな言語が主流になっているか分かりませんし、バージョンコントロールのもとに必要に応じて書き換えられてゆくとすると、意味がきちんと保存されるか多少心配が出てきます。

短期的な解としては、モデリングできちんと概念整理を行った後に、Rails系の技術を利用して短期で仕上げるということでしょうか。RubyかJava/Groovyかというのはケースバイケースで、要件や環境と相談することになるのだと思います。また長期的にはこれらをうまく統合したような枠組みが現れるのではないか、という気がしています。

Railsについて

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中