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

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

プロジェクト・メンバーの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サイト構築時の心得をまとめます。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30