SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Ruby/Perl/PHPユーザーのためのMVCフレームワーク入門

効率的なWebアプリ開発の定石 ~Perl/Ruby/PHPユーザーのためのMVCフレームワーク入門~

第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

現在のWebアプリケーション開発とは? その2

プログラマが担う役割の変化

 ご存知のとおり、2005年に「Web 2.0」というWebサービスの考え方が提示されて以来、構築手法には『リッチクライアント』というキーワードで語られるさまざまな技術が登場しています。

 例)Ajax、Adobe Flex、Adobe Air、WPF、Silverlight…

 リッチクライアントの技術は、よりユーザーが利用しやすいWebサービスを提供するためのユーザーインターフェースに関する技術が集約されており、クライアントサイドで実装するべきロジックと、サーバサイド側で実装されるべきロジックが綿密に関係して動作します。この技術を実装するには、プログラミングの技術とユーザーインターフェースに関する知識が要求されるため、WebクリエイターやWebプログラマが連携して開発を行うことが重要です。

 豊かなユーザーインターフェースはWebサービス開発のみの動向だけではなく、業務系・基幹系開発においても業務処理の作業効率を向上させるための手段として、導入が検討される傾向にあります。これは、大手ベンダーのSAPがAdobe Airを使用したクライアント環境を提供し始めたことや、NexawebがAjaxとJavaを使用したソリューションを提供していることでも明らかです。また、GoogleマップやGoogleカレンダーなどリッチクライアントなアプリケーションが一般化していることから分かるように、今後も加速的に浸透していくと思われます。

 先日、私が参加したセミナーでは前述のNexawebやMicrosoft、 Curl、 Adobe Systemsのリッチクライアントに対する取り組みが採用事例と共に紹介され、今後の開発の方向性がWebサービスの形態にかかわらず変化してきていることを明確に実感することができました。

 このように今までサーバサイドでの技術を発揮していたプログラマにも、クライアントサイドの知識と技術が要求されるようになってきました。

理想的なWeb開発を行うためには

 では、この状況の中で求められる理想的なWeb開発のあり方とは一体どういったものでしょうか? コンシューマー向けアプリケーション開発だけではなく業務系アプリケーション開発においても、“リッチクライアント”というキーワードの基にWebプログラマの『あり方』が大きく変わろうとしているなかで、次のような欲求がでてくると考えられます。

図2
図2

 それでは、これから上記の要望を満たせるような開発について模索するために、Webアプリケーション開発であらためて注目されているMVCフレームワークの現在について見ていくことにします。

Web開発におけるMVCフレームワーク

 ここで簡単にMVCフレームワークとはどんなものか触れておきます。

MVCフレームワーク

 フレームワークはソフトウェアを作る上での枠組みを提供するものです。その枠組みの中で頻繁に必要とされる機能やロジックを実装するための雛形を提供します。Web開発で使用されるフレームワークの多くはMVCモデルと呼ばれる設計パターンに基づいて作られています。MVCはモデル(Model)、ビュー(View)、コントローラー(Contorller)という構成でアプリケーション内の処理を分担する設計パターンです。モデルが処理の中核を担当し、ビューが処理の結果を表示し、コントローラーがそれらの動きを制御します。

図3 MVCモデルのイメージ
図3 MVCモデルのイメージ

フレームワークの利便性

 MVCフレームワークを用いて開発を行うことで、次のようなメリットがもたらされます。

それぞれの役割分担を明確にし、効率的な開発ができる

 プログラマ間での開発機能を分割できるだけではなく、Viewをうまく利用することにより、Webクリエイターが作成したWebページへ処理の実装が容易になる。

問題箇所、修正箇所の切り出しが早く、機能が変更の影響を受けにくい
  • 各機能、ページ表示ごとにカプセル化されているため、広範にわたる修正を減らすことができる。
  • ページデザインの修正が発生した場合に、プログラムへの影響を最小限に抑えることができる。
ディレクトリやファイルの配置・命名方法、一連の処理の規則が決まっているため、構成に悩む必要がない

 フレームワークの構造について学習しておけば、各種ドキュメントを見なくとも、ファイル構成が「仕様書」的役割を果たしているため、開発効率があがる。


 MVCフレームワークを導入することにより、Webプログラマは上記のような恩恵を受け、結果的にはプロジェクトの工数削減につながります。また、リッチクライアントを用いたアプリケーション開発を行う場合にも、Webプログラマは効率的に作業を行うことが可能になります。

 次回では、より具体的にMVCフレームワークについて検証していきます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Ruby/Perl/PHPユーザーのためのMVCフレームワーク入門連載記事一覧

もっと読む

この記事の著者

伊藤 敦史(イトウ アツシ)

株式会社クリエイティブホープ システムエンジニア1978年生まれ 新潟県出身20代の早い段階から、インタラクティブアートに興味を持ち個人的に創作活動を行う。その後、プログラマーとして活動を始め大手ポータルサイト運営企業で設計、構築を経験後、現職へ。趣味は落語を見に行くこと。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3234 2008/12/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング