ホーム > 開発環境 > 1週間でトリビア共有サイト”trivist”を作ってみた

1週間でトリビア共有サイト”trivist”を作ってみた

trivist_logo.png

ここのところ、ブログの更新ツイッターのつぶやきも完全にストップしていました。
集中力のない@tfmagicianにしては珍しいことです。

何をしていたか。
こんなウェブ・サービスを作っていましたよ。

実はこれ、作成期間1週間です。

シンプルなサイトなので、恐らく、開発に慣れた人なら1週間は余裕でしょう。
今日は、まだフレームワークを使った開発、あるいはウェブ・サービスの開発自体に慣れていない人に向けて、高速開発に関するtipsを紹介します。

高速開発とは何か考える

rapid_development.png

まず、高速開発を可能にする”最強最大の魔法“を考えましょう。
それはこれです。

コーディングしない

コーディングしないで、システムが出来ればなんと良いことか!
これはエンジニアにとって、当たり前のことです。
しかし、これを念頭に置くのと置かないのでは、まるで開発速度が違ってきます

できるだけ、怠慢を考えます。

面倒だから、俺はコーディングしたくないんだよ!

これで良いんです。

フレームワークを使う

cake-logo.png

trivistではフレームワークとして、CakePHPを採用しています。

フレームワークの効果は説明するまでもないでしょう。
様々な機能がパッケージングされており、高速開発を可能にします

また、フレームワークに乗ることで、複数プロジェクトで利用可能な共通資産が作成可能です。
それが次の”プラグインを使う“です。

プラグインを使う

development_with_plugin.png

大抵のフレームワークには、プラグインの機能が備わっています。
このプラグインを活用することで、高速開発が可能です。

例えば、検索エンジン用のサイトマップ
trivistのように自動でページが増えていくサイトは、自動でサイトマップを生成する必要があります
MVCのフレームワークを使ったことがある人は、この処理がすぐにイメージ出来ます。

  1. モデル: id一覧の取得
  2. コントローラ: id一覧からURLを生成する
  3. ビュー: サイトマップの吐き出し

こんなところでしょう。
プラグインを知らない人は、この処理をプロジェクト毎に毎回作成するか、コードを前のプロジェクトからコピーするかのいずれかです。
しかし、プラグインを知っていれば、これらの処理をどんなプロジェクトでも使えるように共通化することが出来ます。
共通化したコードは、pluginsディレクトリに放り込むだけ。
あとは、configディレクトリに設定ファイルを書いておしまいです。

これなら、ほとんどコードを書かなくて済みます。
さらに、プラグインがしっかりテストされていれば、アプリケーションにおけるこの部分のテストは、ほぼ省略出来ます

trivistでは、以下のプラグインを使っています。

この中で特に強力なのが、CakePHP-Twitter-API-PluginTagsPluginです。

CakePHP-Twitter-API-Pluginは、TwitterのOAuth認証が2行で書けます
(自身のユーザテーブルにデータを格納する処理は別途必要ですが)

TagsPluginは、簡単にタグ付けとそのタグクラウドを実装できます
タグ登録時の分割処理も自分で書く必要がありません。
いつもの感覚でデータを保存すると、勝手にタグ付けして、勝手にタグクラウドを作ってくれます。

UtilsPluginのCsvImportBehaviorも便利です。

と、話出したら止まらないので、ここまでにします。
よくある機能は自分で実装する前に、プラグインを探してみましょう

ブログパーツを使う

development_with_widgets.jpg

ブログパーツも活用しましょう。
最近のウェブ・サービスで必要となるのが、ソーシャルメディアのコメントを表示する機能検索機能です。
trivistでは、以下のブログパーツを活用しています。

ソーシャルメディアのコメントを取得するのって、結構面倒なんですよね。
対応するサービス分のコードを書く必要がある
また、データが膨大に増えていくのも気になります。

Zenbackは、各ページのソーシャルメディアのコメントを自動で表示してくれるブログパーツです。
jsのコードを貼り付けるだけのお手軽実装です。
これで、どれだけ工数が削減できることか。

検索機能は、全文検索に対応させる必要があります。
その上、検索結果のランク付けも必要です。

そこはもう、本業のGoogleさんに任せてしまいましょう。
Googleカスタム検索も導入は簡単。
これで、検索実装からも解放されます。

このように、ソースコードだけでなく、外部サービスも活用します
アクセスの少ない立ち上げ当初は、これで十分かと。

自動化する

auto_deploy.png

ここまで来たら、サーバも晒します

さくらサーバVPS標準のCentOSでなく、Ubuntuを使っていることにはいくつか理由があります。

  • 最新のパッケージや比較的マイナーなパッケージを、自分でビルドせずに使える
  • セットアップスクリプトをUbuntu 10.04用に書き溜めてある

特に大きいのは、2つ目です。
セットアップスクリプトを書き溜めることで、サーバのセットアップを効率化します

先程の構成を作るには、apache_phpスクリプトとmysqlスクリプトを実行して、設定ファイルを少し変更するだけです。

また、アプリケーション自体のデプロイは、Capistranoのレシピを使います。
CakePHP用のレシピを作ってあるので、それを適用するだけで、自動デプロイ環境が完成です。

サーバ関連の作業で重要なのは、一回こっきりの作業をしないことです。
大抵の作業は、必ずと言っていいほど再び行います。
それを見越して、予め準備しておきましょう

どうでしょうか。
1週間でウェブ・サービスを立ち上げられる気がしてきましたか。

とにかく、あるモノをとことん利用しましょう
あなたの欲しいモノは、恐らく世界の誰かがすでに作っています
せっかく、公開されているのに使わなければ損です。
それが自分の要求を満たさなくても、改造することで自分の要求を満たせないか、考えてみましょう。
自分で作るよりも、そっちのほうが絶対に早いです。

最後に、trivistの応援もお願いします!
うまく起動に乗れば、もっと機能を拡張したいと考えています。
もっと、共有機能を充実して、仲間内で楽しめるサイトになれば、と。
どんなトリビアでも良いので、投稿お願いします

trivist_logo.png
『trivist』おもしろいトリビア・雑学を紹介!

ちょっと一言

ブログの記事を書くのに、久々に徹夜しました。
しかも完撤です。
さすがに眠くなってきた...。

  • http://wesn.dyndns.org/wordpress/?p=22 Webサービスまとめ | wesn

    [...] 1週間でトリビア共有サイト”trivist”を作ってみた http://1-byte.jp/2011/01/06/open_trivist/ [...]

  • 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

    [...] 暇つぶしにはうってつけ。面白い雑学が知りたいな。そんな時にはいつでも最新、面白いトリビアを紹介してもらえるこのサイト『trivist』 このサイトは【1週間でトリビア共有サイト”trivist”を作ってみた】でも話題になりました。驚くことに一週間で作成したんですって。すごいですね。 このページ自体もいろいろと参考になって面白いんですが、そこは置いておいて、『trivist』では様々なトリビアが紹介されています。面白いなぁと思ったら当然、そのトリビアの隣には、あのボタンが・・・。 Twitterのアカウントからトリビアを投稿することもできます。かつて放送されていた番組では果たせなかった(果たせていたら申し訳ない)100へぇを達成できたら嬉しいですね。 [...]

  • http://himatoki.com/usehima/0-towp/ ゼロからWordPressでブログを開設するまでにする5つのステップ―WordPress開設方法まとめ | 暇な時.com
  • http://shopoohati.hp2.jp/266.html api ツイッター

    [...] 1週間でトリビア共有サイト”trivist”を作ってみたp-twitter-api-plugin tagsplugin utilsplugin sitemapplugin migrationsplugin debugkit cakephp-bitly-helper この中で特に強力なのが、cakephp-twitt…はてなブックマ [...]

blog comments powered by Disqus

ホーム > 開発環境 > 1週間でトリビア共有サイト”trivist”を作ってみた

スポンサードリンク
書いている人
つぶやき
RSS 気になるニュース
過去の記事

ページの上部に戻る