- 2011年1月6日 10:00 AM
- 開発環境
ここのところ、ブログの更新もツイッターのつぶやきも完全にストップしていました。
集中力のない@tfmagicianにしては珍しいことです。
何をしていたか。
こんなウェブ・サービスを作っていましたよ。
実はこれ、作成期間1週間です。
シンプルなサイトなので、恐らく、開発に慣れた人なら1週間は余裕でしょう。
今日は、まだフレームワークを使った開発、あるいはウェブ・サービスの開発自体に慣れていない人に向けて、高速開発に関するtipsを紹介します。
高速開発とは何か考える

まず、高速開発を可能にする”最強最大の魔法“を考えましょう。
それはこれです。
コーディングしない
コーディングしないで、システムが出来ればなんと良いことか!
これはエンジニアにとって、当たり前のことです。
しかし、これを念頭に置くのと置かないのでは、まるで開発速度が違ってきます。
できるだけ、怠慢を考えます。
“面倒だから、俺はコーディングしたくないんだよ!”
これで良いんです。
フレームワークを使う

trivistではフレームワークとして、CakePHPを採用しています。
フレームワークの効果は説明するまでもないでしょう。
様々な機能がパッケージングされており、高速開発を可能にします。
また、フレームワークに乗ることで、複数プロジェクトで利用可能な共通資産が作成可能です。
それが次の”プラグインを使う“です。
プラグインを使う

大抵のフレームワークには、プラグインの機能が備わっています。
このプラグインを活用することで、高速開発が可能です。
例えば、検索エンジン用のサイトマップ。
trivistのように自動でページが増えていくサイトは、自動でサイトマップを生成する必要があります。
MVCのフレームワークを使ったことがある人は、この処理がすぐにイメージ出来ます。
- モデル: id一覧の取得
- コントローラ: id一覧からURLを生成する
- ビュー: サイトマップの吐き出し
こんなところでしょう。
プラグインを知らない人は、この処理をプロジェクト毎に毎回作成するか、コードを前のプロジェクトからコピーするかのいずれかです。
しかし、プラグインを知っていれば、これらの処理をどんなプロジェクトでも使えるように共通化することが出来ます。
共通化したコードは、pluginsディレクトリに放り込むだけ。
あとは、configディレクトリに設定ファイルを書いておしまいです。
これなら、ほとんどコードを書かなくて済みます。
さらに、プラグインがしっかりテストされていれば、アプリケーションにおけるこの部分のテストは、ほぼ省略出来ます。
trivistでは、以下のプラグインを使っています。
- CakePHP-Twitter-API-Plugin
- TagsPlugin
- UtilsPlugin
- SitemapPlugin
- MigrationsPlugin
- DebugKit
- CakePHP-Bitly-Helper
この中で特に強力なのが、CakePHP-Twitter-API-PluginとTagsPluginです。
CakePHP-Twitter-API-Pluginは、TwitterのOAuth認証が2行で書けます。
(自身のユーザテーブルにデータを格納する処理は別途必要ですが)
TagsPluginは、簡単にタグ付けとそのタグクラウドを実装できます。
タグ登録時の分割処理も自分で書く必要がありません。
いつもの感覚でデータを保存すると、勝手にタグ付けして、勝手にタグクラウドを作ってくれます。
UtilsPluginのCsvImportBehaviorも便利です。
と、話出したら止まらないので、ここまでにします。
よくある機能は自分で実装する前に、プラグインを探してみましょう。
ブログパーツを使う

ブログパーツも活用しましょう。
最近のウェブ・サービスで必要となるのが、ソーシャルメディアのコメントを表示する機能と検索機能です。
trivistでは、以下のブログパーツを活用しています。
ソーシャルメディアのコメントを取得するのって、結構面倒なんですよね。
対応するサービス分のコードを書く必要がある。
また、データが膨大に増えていくのも気になります。
Zenbackは、各ページのソーシャルメディアのコメントを自動で表示してくれるブログパーツです。
jsのコードを貼り付けるだけのお手軽実装です。
これで、どれだけ工数が削減できることか。
検索機能は、全文検索に対応させる必要があります。
その上、検索結果のランク付けも必要です。
そこはもう、本業のGoogleさんに任せてしまいましょう。
Googleカスタム検索も導入は簡単。
これで、検索実装からも解放されます。
このように、ソースコードだけでなく、外部サービスも活用します。
アクセスの少ない立ち上げ当初は、これで十分かと。
自動化する

ここまで来たら、サーバも晒します。
- さくらサーバVPS
- OS: Ubuntu 10.04
- メモリ: 512M
- 構成: Apache2, MySQL5, PHP5
さくらサーバVPS標準のCentOSでなく、Ubuntuを使っていることにはいくつか理由があります。
- 最新のパッケージや比較的マイナーなパッケージを、自分でビルドせずに使える
- セットアップスクリプトをUbuntu 10.04用に書き溜めてある
特に大きいのは、2つ目です。
セットアップスクリプトを書き溜めることで、サーバのセットアップを効率化します。
先程の構成を作るには、apache_phpスクリプトとmysqlスクリプトを実行して、設定ファイルを少し変更するだけです。
また、アプリケーション自体のデプロイは、Capistranoのレシピを使います。
CakePHP用のレシピを作ってあるので、それを適用するだけで、自動デプロイ環境が完成です。
サーバ関連の作業で重要なのは、一回こっきりの作業をしないことです。
大抵の作業は、必ずと言っていいほど再び行います。
それを見越して、予め準備しておきましょう。
どうでしょうか。
1週間でウェブ・サービスを立ち上げられる気がしてきましたか。
とにかく、あるモノをとことん利用しましょう。
あなたの欲しいモノは、恐らく世界の誰かがすでに作っています。
せっかく、公開されているのに使わなければ損です。
それが自分の要求を満たさなくても、改造することで自分の要求を満たせないか、考えてみましょう。
自分で作るよりも、そっちのほうが絶対に早いです。
最後に、trivistの応援もお願いします!
うまく起動に乗れば、もっと機能を拡張したいと考えています。
もっと、共有機能を充実して、仲間内で楽しめるサイトになれば、と。
どんなトリビアでも良いので、投稿お願いします。
ちょっと一言
ブログの記事を書くのに、久々に徹夜しました。
しかも完撤です。
さすがに眠くなってきた...。
-
http://wesn.dyndns.org/wordpress/?p=22 Webサービスまとめ | wesn
-
http://himatoki.com/%e6%9c%aa%e5%88%86%e9%a1%9e/%e6%9c%80%e6%96%b0%e3%81%ae%e3%83%88%e3%83%aa%e3%83%93%e3%82%a2%e3%82%92%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ab%e3%80%8etrivist%e3%80%8f/ 最新のトリビアをあなたに『trivist』 | 暇な時.com
-
http://himatoki.com/usehima/0-towp/ ゼロからWordPressでブログを開設するまでにする5つのステップ―WordPress開設方法まとめ | 暇な時.com
-
http://shopoohati.hp2.jp/266.html api ツイッター



