複雑化する要素技術

2010年1月20日(水)
長岡 諒

さまざまな要素技術を検討する

プロジェクト・メンバーの2人は、自社内で要件定義と技術検証の作業を行いました。要望として「トップ・ページに“おしゃれ”な商品検索/比較機能が欲しい」とのことで大変ですが、ページ数はざっくり見積もって30ページ程度で済みます。とはいえ、実質的に開発に割ける期間は1カ月半程度と短期のため、オープンソースを利用して短期間で見栄えのするサイトを構築することにしました。

プロジェクト・リーダーがアルバイトでWebサイトを構築していたのは5年以上前のことで、JavaScriptやFlashも今ほど盛んではありませんでした。また、開発言語にはPHPを利用していたのですが、データベース接続用ライブラリとして「PEAR::DB」や「PDO」をそのまま利用しており、Webサイトは1からスクラッチで開発することがほとんどでした。こうした経緯から、あらためてオープンソースの調査を行うこととなりました。

ここ数年で、1からスクラッチで開発するスタイルはほぼ無くなり、フレームワーク(特定用途のソフトウエア・ライブラリ)を用いた開発が一般的なものとなりました。
Rubyでは、開発事例も豊富な「Ruby on Rails」がデファクト・スタンダードとなっており、軽量フレームワークとしては「Sinatra」があります。

PHPでは、開発規模によって、米Yahoo!も採用している「Symphony」やFirefoxのサイトでも採用されたシンプルなMVC(Model View Controller)機能を提供する「CakePHP」、豊富なコンポーネント群を提供する「Zend Framework」などから取捨選択して利用しているようです。

Javaも、開発経験者が抱負な「Struts」や「Seasar」などのほかに、最近では「Wicket」のようなフレームワークが出てきています。

ユーザーに直接見えるフロントエンド部分に関しては、以前はDynamic HTMLと呼ばれていたHTML+CSS+JavaScriptでの開発が一般的となり、簡易にAjax機能の利用を可能にする「prototype」や「jQuery」、RIA(Rich Internet Application)の機能を提供する「Dojo」「Yahoo! UI」「Ext JS」などが手軽に利用できるようになっています。また、JavaScript以外にも、「Flash」や「Flex」、特化した環境であればMicrosoftの「Silverlight」も選択肢に入ります。

開発準備が完了するまで

顧客とのミーティングの現場は、業務システムで言うところの詳細な要件定義や基本設計とは異なっていました。顧客がサイトのイメージやコンセプトを伝え、それを詳細化するという作業が主でした。デザインは、ヒアリングしたイメージやコンセプト、PowerPointによるイメージ図を使ってデザイナーに外注するという流れとなりました。

プロジェクト・メンバーの2人は、相談の上、今回の案件はCakePHPを使って全体を開発し、トップ・ページに検索/比較UIをFlashで埋め込むことにしました。PHP言語を選んだ理由は、リーダーが以前経験していたことと、デプロイ(反映)の作業が必要ない点です。MVCフレームワークのCakePHPを採用した理由は、ほかのフレームワークと比較して機能がシンプルという点です。調べながら使ってみた感覚として、MVCが直感的で、今回の案件にちょうどいいボリュームであると判断しました。

トップ・ページのUIをFlashにした理由は、サイトにアクセスするWebブラウザごとの違いを意識せずに作成できることや、顧客の要望に合いそうなライブラリが見つかったことです。同じFlashの利用方法として、Flashだけで構築するフルFlashやFlexによる開発も考えましたが、予算/技術的に難しそうと判断し、今回のプロジェクトでは見送りました。

デザイナーにはサイトのベース部分と個々のパーツを作成してもらい、メール・フォームなどのバックエンド部分と量産可能なページ、トップ・ページのFlash部分をプロジェクト・メンバー側で製作することになりました。トップ・ページに利用する予定のFlashライブラリのサンプルを見せて完成イメージを説明した結果、顧客からの合意を得られたので、本格的な開発が始まりました。

次ページでは、顧客にデモを見せてから発覚したトラブルと、その対処策を解説し、Webサイト構築時の心得をまとめます。

ウルシステムズ株式会社
ウルシステムズ株式会社 コンサルタント。2009年より現職。昨年はフレームワークのテストチームで自動化業務に携わり、今年はそのフレームワークの開発側となる。昨年は毛嫌いしていたJavaを習得してしまったので、今年は関数型言語に手を出そうかと考え中。
http://www.ulsystems.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています