holidaymakerを支える技術
チーム K : Kaboom
@kuro_m88
はじめに
このスライドは、ニフティの
インターンでC4SAを使って
アプリ開発をした時のものです。
• http://niftyjinji.cocolog-
nifty.com/blog/2013/06/2013-9ae1.html
• http://c4sa.nifty.com/
ニフティ インターンシップ 夏の勉強会 2013
2
自己紹介
• Twitter : @kuro_m88
• 明治大学理工学部情報科学科3年
• ウェブサイエンス研究室
–(データマイニングとかやってます)
ニフティ インターンシップ 夏の勉強会 2013
3
holidaymaker
• インターン5日間の中で企画から
実装まで行う
–5日間は意外と短かった
ニフティ インターンシップ 夏の勉強会 2013
4
holidaymaker
ニフティ インターンシップ 夏の勉強会 2013 5
holidaymaker
ニフティ インターンシップ 夏の勉強会 2013 6
holidaymaker
• 休日の過ごし方を投稿できる
• 〃 を閲覧できる
• キーワード検索機能
• Facebookログイン
• お気に入り機能
• 新着投稿表示
• 人気ランキング表示
• プランの自動生成機能
ニフティ インターンシップ 夏の勉強会 2013 7
…あれ?
• 機能多くね?
– 社員さんに言われるまで気づかなかった
• 残り4日間で実装できるの?
– チームメンバ3人のPHP経験があまりない
• 今回のインターンはPHPで開発しなければなら
なかった
– チーム開発もほとんどしたことがない
ニフティ インターンシップ 夏の勉強会 2013 8
効率を上げる必要性
• 経験が少ないので、できるだけ効率
を上げないと間に合わなさそう
• 既存のフレームワーク等の恩恵に預
かるしかない
ニフティ インターンシップ 夏の勉強会 2013 9
holidaymakerを支える技術
• Webアプリケーションフレームワーク
• データベース
• CSSフレームワーク
• バージョン / ソースコード管理
ニフティ インターンシップ 夏の勉強会 2013 10
Webアプリケーションフレームワー
ク
• Cake PHP
–検索したら1番最初に出てきた
– チームメンバに使ったことがある人がいた
ニフティ インターンシップ 夏の勉強会 2013 11
Cake PHP
• PHP用の高速開発フレームワーク
• いわゆるMVCフレームワーク
–Railsみたいな感じで使えるらしい?
–ViewとControllerだけ使いました
ニフティ インターンシップ 夏の勉強会 2013 12
データベース
• redis
–KVS (KeyValue Store) , NoSQL
–他のチームが使わなさそうなものを
使ってみたかった
–最初から用意されていた (これが大きな理由)
ニフティ インターンシップ 夏の勉強会 2013 13
redis
• redis、それは危険なほどのスピード
– http://ameblo.jp/principia-ca/entry-11197286812.html
– SQLデータベースと違いテーブル等の定義が不要
• 開発中にアプリケーションのデータ構造が変わっても楽
– predisを使ってphpとredisを連携させました
• http://github.com/nrk/predis
ニフティ インターンシップ 夏の勉強会 2013 14
CSSフレームワーク
• Twitter Bootstrap
–これを使っておけば、とりあえず
の見た目は簡単に作れる
–http://getbootstrap.com/
ニフティ インターンシップ 夏の勉強会 2013 15
バージョン / ソースコード管理
• GitHub
–ソフトウェア開発プロジェクトのための
共有ウェブサービス
–ソースコードをそのまま共有して知らぬ
間に競合するのを避けたかった
ニフティ インターンシップ 夏の勉強会 2013 16
GitHub
• Git (バージョン管理システム)を使う
–ブランチというものを使って複数の機能
を並行して開発できる
–3-way mergeによる競合解決
• タスク管理機能もついてる
ニフティ インターンシップ 夏の勉強会 2013 17
ブランチを使った
開発
ニフティ インターンシップ 夏の勉強会 2013 18
タスク管理
ニフティ インターンシップ 夏の勉強会 2013 19
タスク管理
ニフティ インターンシップ 夏の勉強会 2013 20
holidaymakerを支える基盤
• C4SA
–ニフティのアプリケーション開発プラッ
トフォーム
ニフティ インターンシップ 夏の勉強会 2013 21
C4SA
• 開発から運用までできる環境
– ブラウザ上で
• ファイルが編集できる
• シェルが使える!!
• MySQLとRedisが最初から用意されて
いる!(選択肢がある!!)
ニフティ インターンシップ 夏の勉強会 2013 22
GitHubと連携させる
• GitHubにコードをpushしたら
自動でC4SAに反映されるように
–結構便利でした
–http://kurochan-
note.hatenablog.jp/entry/2013/08/30/0044
23
ニフティ インターンシップ 夏の勉強会 2013 23
3分ハッキング !
holidaymakerを支える技術
• その他にも、チームメンバーはもちろ
ん、社員の方にも支えて頂きました。
• 今後も開発を続けてみたいと思ってい
ます。
• ありがとうございました。
ニフティ インターンシップ 夏の勉強会 2013 24

holidaymakerを支える技術