最終回 Webアプリケーション開発にチャレンジ【後編】作って学ぶ、今どきのWebサービス(3/3 ページ)

» 2007年03月29日 08時00分 公開
[はてな 伊藤直也,ITmedia]
前のページへ 1|2|3       

MVCモデルによるWebアプリケーションの構築

 足早でしたがCGI::Application::DispatchやTT、それからWWW::OpenSearchを使ってWebアプリケーションを作成してきました。いまどきのWebアプリケーションプログラミングがどのようなものかを感じ取っていただけたでしょうか。

 途中に紹介した、いわゆる「いまどき」でないパターンでのプログラムに比べて、今回紹介したプログラムはファイルの数も多いし、コードの量も多いしであまり効率的でないのではないか、と思われた方もいらっしゃるかもしれません。

 そういう場合は、後に機能拡張あるいはメンテナンスをすることを考えてみてください。あそこを変えるにはここを変えればいいんだ、というのが、次のようにまとまってそれぞれ分離されているのがお分かりいただけるかと思います。

  • トップページのデザインを変更するならindex.tt
  • 検索結果のデザインを変更するならsearch.tt
  • Open Searchによる検索の仕方を変更するならWWW::OpenSearch
  • トップページに渡すデータを増やすならUU::Index
  • 検索ページに渡すデータを増やすならUU::Search

 ではなぜ、きれいに分離できたのでしょうか。実は「MVCモデル」というアプリケーションの設計手法を意識して作ったからでした。MVCは、

  • M = Model(処理の中核)
  • V = View(見た目)
  • C = Controller(MとVの制御)

の3層に分けてアプリケーションを作りましょう、という考え方です。今回は、

  • Model = WWW::OpenSearch
  • View = テンプレートファイル
  • Controller = CGI::Applicationのクラス群

といったように分離されているのがお分かりいただけるかと思います。このようにプログラムの処理を3層に分けることで、機能の拡張やメンテナンスを行うのに、その対象範囲が限定されるとともに、担当者をべつべつに割り当てることができるようになります。今回「MVCを意識した」と言っても、やったことと言えばTTとCGI::Application::Dispatchを使っただけです。つまりフレームワークに身を任せただけ、ということです。

 このように、いまどきのWebアプリケーション作成では、MVCモデルを前提にしたフレームワークを使ってきれいに3層に分けて開発する、というのが主流だったりします。うまく設計されたフレームワークをきちんと使うと、よりエレガントで機能追加のしやすいアプリケーションを作ることができます。フレームワークが注目を浴びる理由はここなんですね。

終わりに

 これまで7回にわたって、Webを題材にした「いまどきのPerlプログラミング」を紹介してきました。総じて言えるのは、昨今のプログラミングにおいては中核処理のロジックを考えるということ以上に、アプリケーションを構成する部品をどこから集めてどう組み合わせるか、が重要だということです。

 いまどきのWebプログラマに必要なのは、そういった部品を集めるアンテナやセンスと言えるでしょう。

トップページのapp.cgi/indexに対応するUU::Indexから作っていきましょう

なおapp.cgiではDEFAULTに「Index」を指定しているので、app.cgiに直接アクセスするとUU::Indexにディスパッチされapp.cgi/indexと同様の画面が表示される。

本記事は、オープンソースマガジン2005年9月号「作って学ぶ、今どきのWebサービス 第3回」を再構成したものです。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ