SlideShare a Scribd company logo
1 of 44
スペースマーケットの管理画面を支える技術
2016年4月18日
Shinichiro Suzuki
鈴木真一郎
取締役 / CTO
NTTインターネット(銀行系SE)
ヤフー(スポーツ/ネタりか)
RCO(クリエイター)
スマホ事業で起業
スペースマーケット共同創業
スペースマーケットのミッション
世界中のあらゆるスペースを
簡単に貸し借り
空きスペースを貸したい人と
借りたい人をマッチング
借りたい人 貸したい人
利用の流れ
借りたい人をマッチング
5,000スペース以上掲載
今日お話すること
”あらゆるスペースを
簡単に貸し借り”
することができる管理画面
を支える技術と試行錯誤
貸し手、借り手、サービス(KPI管理)
それぞれに管理画面
リニューアル
借りたい人 貸したい人
リニューアル
管理画面 管理画面 管理画面
貸し手の管理画面でできる事
• 掲載スペース情報のCRUD
• 予約カレンダーの管理/変更
• 予約の承認・キャンセル等
• 借り手とのやりとり(チャット機能)
• 決済(クレジットカード・銀行振込)
• 売上管理(予約数等のKPI管理も)
多種多様なワークフローを
いかに”簡単”に
管理できるようにするか
”簡単に管理” 主な要求仕様
• タブレットアプリのようなリッチな操作感
– SPA (シングルページアプリケーション)
– 即時保存
– メッセージング(リアルタイム)
• 多様な検索、ソートに対応
• 他サービスともデータ連携
– Googleカレンダー
Tech Stack
Frontend
Backend API
Infrastucture
Data Store
Frontend
SPA・即時保存 操作イメージ
非公開スライド
編集系画面のデータフロー
Screen Mouse / Touch
Frontend
(React.js)
Component View Component View
Backend API
レンダリングまでの流れ
Nginx / Passenger
Rails
react-rails
React.js
on Babel / Browserify
一部jQuery
react-railsの恩恵
• jsのサーバサイドレンダリングが可能に
• SEO対策が必要になるようなサービスメイ
ン部分でもReactベースで共通開発できる
• Rails側とJS側で同じような処理を書かなき
ゃいけないようなことがなくなった
(Isomophic)
課題感
• JSが増えたのでprecompileが遅くなる
• react-railsの中でメモリを結構食う(ExecJS)
• Railsに比べてサーバサイドレンダリングの
時にdebugがしづらい
メッセージング機能
非公開スライド
メッセージング / データフロー
screen 投稿
Frontend
Backend API
Web(React.js)iOS
Pusherで事足りた&簡単
• Nodeやwebsocket-rails等の自前実装の可能
性も考えたが、実装コストから見合わせ。
• RubyもiOSアプリもSDKがあるので導入が圧
倒的に楽(それぞれ1時間ほどで実装)
• 最安有料プランで今のところ運用。
Backend API
Frontend
Backend API
Infrastucture
Data Store
APIは自前フレームワーク開発
Nginx / Passenger
Rails
air_representer
(自前のAPI用フレームワーク)
多様な検索、ソートへの対応
• 予約期間(開始〜終了)
• 予約ステータス
• メッセージの内容(キーワード検索)
• 掲載スペース情報
• 利用者名、電話番号などなど
管理画面でもElasticSearch
データフロー
Screen Mouse / Touch
Frontend (React.js)
Backend API
インデックス作成
検索結果
ES導入のきっかけ(余談)
• SEO対策でLPを作るため、通常の検索条件
と緯度経度を組み合わせた検索機能を実装す
る必要があった
• 使っているMySQLのバージョンでは緯度経
度検索のインデックスが貼れずパフォーマン
スに問題(WBS砲で露呈して落ちた)
• 上記要件でそれなりの速度が出せた
仕様のちょっとした工夫
Screen Mouse / Touch
Frontend
(React.js)
Component View Component View
Resource API
ビジネスロジックに加えテキスト表示仕様
(i18n等)もここで集中管理した
{space: {
“state”: “tokyo”, “state_text”: “東京”
}}
フロントエンドは基本APIからのデータをそのまま出す(加
工しない)。アプリなどデバイスが増えても仕様管理が楽
Development / Deploy
Githubフロー&CI
• デザインも含めてGithubフローで開発
• werkerでCI
• コードレビュー、stagingで検証後にdeploy
(capistrano)
まとめ
リニューアルを振り返ると
• ReactのComponentがある程度出来上がると
再利用できて開発が早い
• それまでRails中心の開発からの移行で学習
コストはかかった(jsのというかReact)
• 一度メンバーが覚えてしまえば、FEの開発
は格段に早くなった印象
これからやりたいこと
• 開発スピードのアップのために
– webpackの導入
• インフラの効率化のために
– 自前ElasticSearchをAWSのにのっける
– RDSからAuroraに移行したい
– herokuを活用したい
サービスの成長に
まつわる課題を
一緒に解決してくれる
エンジニア募集中!!
スペースマーケットのビジョン
チャレンジする人を増やす。
世の中を面白くする。
世の中を良い方向に
面白くするサービスを
一緒につくりましょう
ご静聴ありがとうございました

More Related Content

What's hot

20141024 地域で立ち上げるCivic Tech 〜生駒ではじまった挑戦〜
20141024 地域で立ち上げるCivic Tech 〜生駒ではじまった挑戦〜20141024 地域で立ち上げるCivic Tech 〜生駒ではじまった挑戦〜
20141024 地域で立ち上げるCivic Tech 〜生駒ではじまった挑戦〜Takuya Sato
 
IoT.kyoto「IoTプロダクション導入事例とその課題」
IoT.kyoto「IoTプロダクション導入事例とその課題」IoT.kyoto「IoTプロダクション導入事例とその課題」
IoT.kyoto「IoTプロダクション導入事例とその課題」Ichiro Tsuji
 
自治体によるFixMyStreetJapan導入について
自治体によるFixMyStreetJapan導入について自治体によるFixMyStreetJapan導入について
自治体によるFixMyStreetJapan導入についてKoji Kudo
 
みちでみちるわたしの暮らし
みちでみちるわたしの暮らしみちでみちるわたしの暮らし
みちでみちるわたしの暮らしssuser253b42
 

What's hot (7)

20141024 地域で立ち上げるCivic Tech 〜生駒ではじまった挑戦〜
20141024 地域で立ち上げるCivic Tech 〜生駒ではじまった挑戦〜20141024 地域で立ち上げるCivic Tech 〜生駒ではじまった挑戦〜
20141024 地域で立ち上げるCivic Tech 〜生駒ではじまった挑戦〜
 
IoT.kyoto「IoTプロダクション導入事例とその課題」
IoT.kyoto「IoTプロダクション導入事例とその課題」IoT.kyoto「IoTプロダクション導入事例とその課題」
IoT.kyoto「IoTプロダクション導入事例とその課題」
 
Virtual shizuokaの取組
Virtual shizuokaの取組Virtual shizuokaの取組
Virtual shizuokaの取組
 
8班 Sigpo
8班 Sigpo8班 Sigpo
8班 Sigpo
 
自治体によるFixMyStreetJapan導入について
自治体によるFixMyStreetJapan導入について自治体によるFixMyStreetJapan導入について
自治体によるFixMyStreetJapan導入について
 
Tango開発事例
Tango開発事例Tango開発事例
Tango開発事例
 
みちでみちるわたしの暮らし
みちでみちるわたしの暮らしみちでみちるわたしの暮らし
みちでみちるわたしの暮らし
 

Similar to スペースマーケットの管理画面を支える技術

AiとIoTによる産業最適化と社会問題解決
AiとIoTによる産業最適化と社会問題解決AiとIoTによる産業最適化と社会問題解決
AiとIoTによる産業最適化と社会問題解決Osaka University
 
「IoTで広がる未来への可能性」熊本IoTアライアンスキックオフセミナー 170112
「IoTで広がる未来への可能性」熊本IoTアライアンスキックオフセミナー 170112「IoTで広がる未来への可能性」熊本IoTアライアンスキックオフセミナー 170112
「IoTで広がる未来への可能性」熊本IoTアライアンスキックオフセミナー 170112知礼 八子
 
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うかSORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うかSORACOM,INC
 
「あなたの身近にもIoT」地域IoTサミット2016in天草 161111
「あなたの身近にもIoT」地域IoTサミット2016in天草 161111「あなたの身近にもIoT」地域IoTサミット2016in天草 161111
「あなたの身近にもIoT」地域IoTサミット2016in天草 161111知礼 八子
 
「IoTで創造する新しい産業」高知家フューチャーセミナー 161107
「IoTで創造する新しい産業」高知家フューチャーセミナー 161107「IoTで創造する新しい産業」高知家フューチャーセミナー 161107
「IoTで創造する新しい産業」高知家フューチャーセミナー 161107知礼 八子
 
20170626 さくら stripe_magento共催セミナー_公開
20170626 さくら stripe_magento共催セミナー_公開20170626 さくら stripe_magento共催セミナー_公開
20170626 さくら stripe_magento共催セミナー_公開Hideki Ojima
 
APIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAUAPIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAUTatsuo Kudo
 
20140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料120140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料1NIFTY Cloud
 
20180704 soracom digitalization_final
20180704 soracom digitalization_final20180704 soracom digitalization_final
20180704 soracom digitalization_finalHideki Ojima
 
ビジネスプランの提案
ビジネスプランの提案ビジネスプランの提案
ビジネスプランの提案Mizuki Sakai
 
20170617 td cvol9_insta_vr
20170617 td cvol9_insta_vr20170617 td cvol9_insta_vr
20170617 td cvol9_insta_vrHideki Ojima
 
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメントDyna traceによるuxマネジメント
Dyna traceによるuxマネジメント伸夫 森本
 
SORACOM Conference Discovery 2017 | キーノート〜IoTの最先端を探しに〜
SORACOM Conference Discovery 2017 | キーノート〜IoTの最先端を探しに〜SORACOM Conference Discovery 2017 | キーノート〜IoTの最先端を探しに〜
SORACOM Conference Discovery 2017 | キーノート〜IoTの最先端を探しに〜SORACOM,INC
 
「IoTが作る製造業・地方の未来」 福井IoTラボ (配布用) 170321
「IoTが作る製造業・地方の未来」 福井IoTラボ (配布用) 170321「IoTが作る製造業・地方の未来」 福井IoTラボ (配布用) 170321
「IoTが作る製造業・地方の未来」 福井IoTラボ (配布用) 170321知礼 八子
 
SORACOM Conference Discovery 2017 | C3. IoT x 金融・決済
SORACOM Conference Discovery 2017 | C3. IoT x 金融・決済SORACOM Conference Discovery 2017 | C3. IoT x 金融・決済
SORACOM Conference Discovery 2017 | C3. IoT x 金融・決済SORACOM,INC
 
Starting with whyで始めよう イノベーション創出に必要な知識と技術そして覚悟を持とう
 Starting with whyで始めよう イノベーション創出に必要な知識と技術そして覚悟を持とう Starting with whyで始めよう イノベーション創出に必要な知識と技術そして覚悟を持とう
Starting with whyで始めよう イノベーション創出に必要な知識と技術そして覚悟を持とうOsaka University
 
PKSHA Security Package for Credit
PKSHA Security Package for CreditPKSHA Security Package for Credit
PKSHA Security Package for CreditMasatoMinami2
 
【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力Cybozucommunity
 

Similar to スペースマーケットの管理画面を支える技術 (20)

AiとIoTによる産業最適化と社会問題解決
AiとIoTによる産業最適化と社会問題解決AiとIoTによる産業最適化と社会問題解決
AiとIoTによる産業最適化と社会問題解決
 
「IoTで広がる未来への可能性」熊本IoTアライアンスキックオフセミナー 170112
「IoTで広がる未来への可能性」熊本IoTアライアンスキックオフセミナー 170112「IoTで広がる未来への可能性」熊本IoTアライアンスキックオフセミナー 170112
「IoTで広がる未来への可能性」熊本IoTアライアンスキックオフセミナー 170112
 
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うかSORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
 
「あなたの身近にもIoT」地域IoTサミット2016in天草 161111
「あなたの身近にもIoT」地域IoTサミット2016in天草 161111「あなたの身近にもIoT」地域IoTサミット2016in天草 161111
「あなたの身近にもIoT」地域IoTサミット2016in天草 161111
 
「IoTで創造する新しい産業」高知家フューチャーセミナー 161107
「IoTで創造する新しい産業」高知家フューチャーセミナー 161107「IoTで創造する新しい産業」高知家フューチャーセミナー 161107
「IoTで創造する新しい産業」高知家フューチャーセミナー 161107
 
20170626 さくら stripe_magento共催セミナー_公開
20170626 さくら stripe_magento共催セミナー_公開20170626 さくら stripe_magento共催セミナー_公開
20170626 さくら stripe_magento共催セミナー_公開
 
スペースマーケット 〜スベースに新しい価値を創り出す〜( 重松大輔)
スペースマーケット 〜スベースに新しい価値を創り出す〜( 重松大輔)スペースマーケット 〜スベースに新しい価値を創り出す〜( 重松大輔)
スペースマーケット 〜スベースに新しい価値を創り出す〜( 重松大輔)
 
APIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAUAPIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAU
 
Fit26
Fit26Fit26
Fit26
 
20140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料120140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料1
 
20180704 soracom digitalization_final
20180704 soracom digitalization_final20180704 soracom digitalization_final
20180704 soracom digitalization_final
 
ビジネスプランの提案
ビジネスプランの提案ビジネスプランの提案
ビジネスプランの提案
 
20170617 td cvol9_insta_vr
20170617 td cvol9_insta_vr20170617 td cvol9_insta_vr
20170617 td cvol9_insta_vr
 
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメントDyna traceによるuxマネジメント
Dyna traceによるuxマネジメント
 
SORACOM Conference Discovery 2017 | キーノート〜IoTの最先端を探しに〜
SORACOM Conference Discovery 2017 | キーノート〜IoTの最先端を探しに〜SORACOM Conference Discovery 2017 | キーノート〜IoTの最先端を探しに〜
SORACOM Conference Discovery 2017 | キーノート〜IoTの最先端を探しに〜
 
「IoTが作る製造業・地方の未来」 福井IoTラボ (配布用) 170321
「IoTが作る製造業・地方の未来」 福井IoTラボ (配布用) 170321「IoTが作る製造業・地方の未来」 福井IoTラボ (配布用) 170321
「IoTが作る製造業・地方の未来」 福井IoTラボ (配布用) 170321
 
SORACOM Conference Discovery 2017 | C3. IoT x 金融・決済
SORACOM Conference Discovery 2017 | C3. IoT x 金融・決済SORACOM Conference Discovery 2017 | C3. IoT x 金融・決済
SORACOM Conference Discovery 2017 | C3. IoT x 金融・決済
 
Starting with whyで始めよう イノベーション創出に必要な知識と技術そして覚悟を持とう
 Starting with whyで始めよう イノベーション創出に必要な知識と技術そして覚悟を持とう Starting with whyで始めよう イノベーション創出に必要な知識と技術そして覚悟を持とう
Starting with whyで始めよう イノベーション創出に必要な知識と技術そして覚悟を持とう
 
PKSHA Security Package for Credit
PKSHA Security Package for CreditPKSHA Security Package for Credit
PKSHA Security Package for Credit
 
【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力
 

スペースマーケットの管理画面を支える技術