ロッシェル・カップさんの本について

週末ですので(久々に?)ノンカテゴリーの話題です。

もう10年も昔のことになりますが米国に3年程赴任していたことがあります。オフィスではやはり米国人スタッフ・エンジニアが多数仕事をしている訳で、そのうち何か違うなと感じるようになりました。そんな時に、確かFrontlineという名前だったと思いますが、面白いWebサイト兼フリーペーパをみつけ、そこに記事を掲載していたロシェル・カップさんという方のことを知りました。当時の掲載記事(本当に面白く(というより)ためになりました)は書籍となり「反省しないアメリカ人をあつかう方法」という名前で出版されました。Amazonで調べてみると改訂版となって再度出版されているようです。帰任後に大学の同級生が米国に赴任すると聞いて当時の本を餞別代りに渡したこともあります。なお、別に頼まれて宣伝している訳ではありません。

この方の記事や書籍は日米の文化の違いに鋭い目を向け日本人に分かりやすく解説してくれます。海外(特に米国)関連の仕事をされる方・今後されようとしている方には本当にお薦め出来ます。是非Amazonの検索で著者名(「ロッシェル・カップ」)を使って試してみてください。20冊くらいはヒットします。

ところで10年前に私の上司だった方が現在もまだ米国在住なのですが、この方もやはり彼女が書いた内容を随分気に入られていたのですが、何かのきっかけで直接ご本人と会うことがあったとのことでその後現地オフィスで講演会までして貰ったと聞きました(現地日本人スタッフに大受けだった様です)。

この話は、モデリングやソフトウェアアーキテクチャとは全く無関係ですが、やはり何をするにも「人」と「文化」という要素は入ってきます。特に米国の方と仕事される方にはロシェル・カップさんの本は非常に役立つと思います(欧州だと少し話が違うかもしれませんし、アジアや中東は全く別だと思います(別の情報源・本を探してください))。

広告
ロッシェル・カップさんの本について

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について