最終回 Webアプリケーション開発にチャレンジ【後編】:作って学ぶ、今どきのWebサービス(3/3 ページ)
PerlによるWebプログラミングの基礎から応用まで解説してきた本連載の締めくくりとして、今回は、これまで学んだことを踏まえた上で、実際にWWW::OpenSearchを使ってアプリケーションを組み立てていきましょう。
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回」を再構成したものです。
関連記事
- developersLife〜開発者という生き方
- 連載第1回:何はなくともCPANを知ろう
最近のWebかいわいでは、Webアプリケーション同士が連携してどんどん面白いサービスが生まれています。しかし、Web上のサービスは手元にソフトウェアも何も残らないので、どうしても雲をつかむような分かりにくさがあります。そこで本連載では、Webサービスを実際に利用/作成しながら、そういった「今どき」のテクノロジーを学んでみたいと思います。 - 連載第2回:RSSフィードの料理はLWPとXML::RSSにおまかせ
今回から、いよいよPerlプログラミングの世界に入っていきましょう。手始めに、PerlにおけるWebプログラミングの要ともいえるLWPを用いた、HTTPコンテンツをPerlでHackする手法を解説します。 - 連載第3回:XML::SimpleであらゆるXML文書を料理する
RSSにおけるXML::RSSのように、専用のモジュールがある場合にはそれを使えばよいのですが、そうでない場合は汎用のXMLパーサーモジュールを使ってパースすることになります。今回は、XML::Simpleを使ってあらゆるXML文書を料理できるようにしてみます。 - 連載第4回:Webサービスって実はこんなに簡単
前回まで3回に渡って、PerlにおけるWebプログラミングの基礎を解説しました。今回は一歩進めて、より実用的なアプリケーションを作るため、その足がかりとなるであろうXML Webサービスの使い方について解説していきたいと思います。 - 連載第5回:Amazon Webサービスを料理してみる
Webサービスを使いこなすといっても、Web検索の機能をアプリケーションに統合するだけでは、いまいち面白みがありません。今回は、Amazon.comが提供するAmazon Webサービスを料理してみましょう。 - 連載第6回:Webアプリケーション開発にチャレンジ【前編】
本連載ではこれまで、PerlによるWebプログラミングの基礎から応用まで解説してきました。今回は、これまで学んだことを踏まえた上で、Webサービスを使ったWebアプリケーション開発にチャレンジします。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.