スーパーハッカソン2012サーバー編

投稿日:2012-09-17

今回の作業で肝になるのはクライアント側だったため、サーバー側にあまり比重を置くことができずダミーデータで済ます案も考えていたのは前出の通り。
ただサーバー実装を開始した時点でプレゼンの方向性も機能の仕様も決まっていなかったので、とりあえずどんな状況にも対応できるよう一通りの機能を実装しようと考えました。

そこで今回採用したのがFuelPHPというフレームワーク。CodeIgniterに関わっていた開発者が他のフレームワークの良いとこ取りをして作ったというもので、フレームワークの根幹的なことから、SimpleAuth・ORMなどのパッケージが最初から充実しているため、基本的なシステムなら比較的短時間で作れてしまいます。またSmartyなど他のViewテンプレートシステムの導入も考えられており、使い慣れたViewテンプレートを使用できるのも嬉しいところ。

今回の開発で非常に役に立ったのが、前述の認証機能SimpleAuthとRESTfulのサポートが組み込まれたRestコントローラ。
Restコントローラを使用すれば拡張子に応じて出力を振り分けてくれます。コントローラ側の実装は連想配列を返すだけ済んでしまいます。

例えば
http://localhost/test/list.json
でアクセスすればJSON形式で出力してくれて
http://localhost/test/list.xml
でアクセスすればXML形式で出力してくれる、という。
今回サーバー側はAPI実装だけで良かったので、この機能は大変助かりました。

 

今回は使用していませんが、RoRのScaffoldと同様の機能も用意されておりCRUDに必要なController/Viewを生成してくれる機能もあるため上手く活用すれば開発工数の短縮にも繋がるのではないかと思います。
また日本語ドキュメントも充実しており、また内容も分かりやすいのである程度他のMVCフレームワークを経験したことがあれば導入は容易だと思います。

実際のところはクライアント側の仕様も同時に考えながら進んでいたので、DBの構築やサーバー側の調整、クライアントの実装がほぼ同時進行になっており、クライアント側に注力できたのは1日半くらいだったのですが、サーバー側はほぼORMの実装のみで済むシンプルさに助けられた形になりました。

次回で一応最終回。スピードが必要な開発なのに、新しいものに手を出して自分の首を絞めるお馬鹿なクライアント側開発のお話です。


PAGE TOP