足早でしたがCGI::Application::DispatchやTT、それからWWW::OpenSearchを使ってWebアプリケーションを作成してきました。いまどきのWebアプリケーションプログラミングがどのようなものかを感じ取っていただけたでしょうか。
途中に紹介した、いわゆる「いまどき」でないパターンでのプログラムに比べて、今回紹介したプログラムはファイルの数も多いし、コードの量も多いしであまり効率的でないのではないか、と思われた方もいらっしゃるかもしれません。
そういう場合は、後に機能拡張あるいはメンテナンスをすることを考えてみてください。あそこを変えるにはここを変えればいいんだ、というのが、次のようにまとまってそれぞれ分離されているのがお分かりいただけるかと思います。
ではなぜ、きれいに分離できたのでしょうか。実は「MVCモデル」というアプリケーションの設計手法を意識して作ったからでした。MVCは、
の3層に分けてアプリケーションを作りましょう、という考え方です。今回は、
といったように分離されているのがお分かりいただけるかと思います。このようにプログラムの処理を3層に分けることで、機能の拡張やメンテナンスを行うのに、その対象範囲が限定されるとともに、担当者をべつべつに割り当てることができるようになります。今回「MVCを意識した」と言っても、やったことと言えばTTとCGI::Application::Dispatchを使っただけです。つまりフレームワークに身を任せただけ、ということです。
このように、いまどきのWebアプリケーション作成では、MVCモデルを前提にしたフレームワークを使ってきれいに3層に分けて開発する、というのが主流だったりします。うまく設計されたフレームワークをきちんと使うと、よりエレガントで機能追加のしやすいアプリケーションを作ることができます。フレームワークが注目を浴びる理由はここなんですね。
これまで7回にわたって、Webを題材にした「いまどきのPerlプログラミング」を紹介してきました。総じて言えるのは、昨今のプログラミングにおいては中核処理のロジックを考えるということ以上に、アプリケーションを構成する部品をどこから集めてどう組み合わせるか、が重要だということです。
いまどきのWebプログラマに必要なのは、そういった部品を集めるアンテナやセンスと言えるでしょう。
なおapp.cgiではDEFAULTに「Index」を指定しているので、app.cgiに直接アクセスするとUU::Indexにディスパッチされapp.cgi/indexと同様の画面が表示される。
本記事は、オープンソースマガジン2005年9月号「作って学ぶ、今どきのWebサービス 第3回」を再構成したものです。
Copyright © ITmedia, Inc. All Rights Reserved.