どのツールを使って作るかを決めます。
一度使うと決めたツールは、あとから変えたいと思ってもなかなか変えられないことが多いので、ここはよく考える必要があります。
どの言語を使うか? プラットフォームは?
例えばプログラミング言語というツール。
Webプログラミングに適した言語で代表的なものはPHP、Perl、Ruby、Pythonでしょう。
僕はPHPが得意なのでWebアプリケーションはPHPで作っています。
簡単にそれぞれの特徴を書くと、
・PHP
Webプログラミング言語としておそらく最も使われている。初心者が取り組みやすい。
・Perl
古くから使われている言語なので、歴史のあるWebサービスで使われていることが多い。
mixiで使われている。
・Python
歴史は意外と古いらしいが、あまり使われてこなかった。
Googleが推してる言語なので将来性はあるんかも。YouTubeで使われている。
・Ruby
国産言語なのでなにかと安心? 実力はあると思うがシェアはそんなに高くないと思う。クックパッドで使われている。
プラットフォームを決める
どちらかというと、言語を選択するよりプラットフォームを決める方が先かも知れません。
最近はゼロからガリガリ作り始めるのではなくて、ある程度決まった型(フレームワーク)をうまく利用して作るケースが多いです。
今回つくるサービスにはログイン認証機能を導入したいのです。
しかし、この機構をゼロから作るのは結構骨が折れます。
実はログインって、仕組みを考え出すといろいろめんどくさいです。
上記のように、通常のログインだけでなく以下の考慮が必要です。
・ログインに失敗したらログインできないようにする。
・新規ユーザが登録できるようにする
・パスワードを忘れた人のために、パスワード再発行機能を作る
でもこういう処理って、会員制サイトには必ず必要な機能なので、すぐ使える仕組みが用意されていればそれを使う方が便利です。
そういう理由から、すでにログイン機能などが標準で備わっているプラットフォームやフレームワークを使えば楽できるということが分かります。
1つの方法としては、ブログシステムのWordPressやCMS(コンテンツマネジメントシステム)のXOOPSを使うという方法。
これらのプラットフォームには既にログイン認証の仕組みは備わっています。
この上にプラグインモジュールとして自作のプログラムを載せれば、自分はログイン機能をわざわざ作らなくても済みます。
WordPressはPHPで作られていますし、XOOPSもPHPです。
PHPを使用言語として選ぶ利点は、これらプラットフォームの選択肢が多いという点にあります。
しかし、これらはいいことばかりではありません。
CMSやブログシステムは動作が重たくて、ユーザにとって快適ではないかも知れません。
そこで、僕の場合はフレームワークという別の手段を使うことにしました。
これはCMSのように完成された形で提供されてはいませんが、ゼロから作るよりは楽です。
お好み焼きで例えれば、
CMS、ブログシステム:お好み焼き屋で注文したお好み焼き
プログラミング言語:自宅で作るお好み焼き
フレームワーク:自分で焼く方式のお好み焼き屋
しつこく繰り返しますが、うどんで例えれば、
CMS、ブログシステム:普通のうどん屋
プログラミング言語:自宅で作るうどん
フレームワーク:セルフ方式のうどん屋
て感じでしょうか… 自分で作らないといけないので完成品をすぐ食べられるワケではありませんが、
自宅で作る場合に比べて皿洗いとか材料調達の手間は省けると。
具体的には、
・ログイン、認証の仕組み
・フォームの作成
・データベースへのアクセス
・Javascriptの生成
などが簡単に使える形であらかじめ用意されています。
このフレームワークにしても種類がたくさんありますが、僕はこのへんの特徴の違いをよく知らないのでとりあえず有名どころのCakePHPを使うことにしました。
言語やプラットフォーム以外にも決めるべきツールがあるので、それは次回に書きます。
過去のエントリ
【連載】Webサービス制作日記#02 要件を決める
【連載】Webサービス制作日記#01 何を作ろうとしているか