SlideShare a Scribd company logo
DeNA Co., Ltd. 
Yosuke Furukawa 
QuizNowを支える技術 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
1
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
自己紹介 
2
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
自己紹介 
 古川陽介(ふるかわようすけ) 
 HN: @yosuke_furukawa 
 QuizNow開発 
 Node.js コンサル 
 主な業務: にぎやかし、ムードメーカー 
 肩書(愛称): 会長 
 日本Node.jsユーザーグループ代表 
3
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
この前テレビに出た 
https://www.youtube.com/watch?v=LS-0- 
MmX9OM#t=5m30s 
4
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
orz 
5
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
今日の話 
6
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
QuizNow is 何 
7
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
コンセプト 
8
9 http://omocoro.jp/kiji/2633/ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
10 http://omocoro.jp/kiji/2633/ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
11 http://omocoro.jp/kiji/2633/ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
12 
http://honto.jp/netstore/pd-book_02705279.html 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
13 
http://honto.jp/netstore/pd-book_02705279.html 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
14 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
15 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
QuizNowの機能とか 
16
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
QuizNowの機能とか 
17 
Quiz Community
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
QuizNowの機能とか 
18 
Quiz Community
QuizしてCommunityで語る 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
QuizNowの機能とか 
19 
Quiz Community 
慣れ合いに飽きたら競い合う
みんなで遊んでみよう 
20 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Perlに関するクイズ作ったー 
https://quiznow.me/quiz_share/show?ab=1&&quiz_id=83316&timer_num=100 
https://quiznow.me/quiz_share/show?ab=1&&quiz_id=83310&timer_num=100 
https://quiznow.me/quiz_share/show?ab=1&&quiz_id=83322&timer_num=100 
https://quiznow.me/quiz_share/show?ab=1&&quiz_id=83324&timer_num=100 
21
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
秀逸なスレ 
22 
http://quiznow.me/community/topic/6/board/268/
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
秀逸なスレ 
23 
http://quiznow.me/community/topic/15/board/23/
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
中身 
24
25 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Perl 
(Amon2)
26 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Perl 
それぞれのコンポー(Aネmonン2) トで 
それぞれの戦いがある。
27 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Perl 
(Amon2) 
client side
ネイティブアプリ 
28 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
29 
エンジニアデザイナ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
30 
エンジニアデザイナ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
イメージ共有できてないと辛い 
31 
エンジニアデザイナエンジニアとデザイナ間で 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
QuizNow
32 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
33 
静止画だけじゃなくて 
動画にして動きまで共有する 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
34 
エンジニアデザイナなるべく正確に意図を 
伝えるように工夫 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
35 
コミュニケーションミスによる 
手エ戻ンりジニをア防ぎ、アデセザッイトナ 
を 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
ムダにしない仕組み
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
ブラウザアプリ 
36
Look & Feel はネイティブアプ 
リの方が上 
Webでインストールレスでサクッ 
とプレイ出来たほうが人にリーチ 
しやすい 
37 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Look & Feel はネイティブアプ 
リの方が上 
Webでインストールレスでサクッ 
とプレイ出来たほうが人にリーチ 
しやすい 
38 
最近流行りのハイブリッドアプリ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
39 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
40 
先行実装されてる 
アプリ版と合わせる 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
41 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
42 
なめらかにストレス無く 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Full Single Page Application 
⁃ backbone.js + marionette 
プリロードでアセットを読み込む 
⁃ 初期ロードでキャッシュする 
減色処理、圧縮処理で軽くする 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
⁃ Gruntでの自動化 
43
Full Single Page Application 
⁃ backbone.js + marionette 
プリロードでアセットを読み込む 
⁃ 初期ロードでキャッシュする 
減色処理、圧縮処理で軽くする 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
⁃ Gruntでの自動化 
44 
PCとかで見てると気づかない内に 
重くなってたりする。
45 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
46 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
とはいえ 
47
全部できてから確認するわけ 
にも行かない。。。 
48 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
改善点 
49
 サーバーレスでクライアントを実装できるよ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
うにする 
50
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
!! stubcell !! 
51
yamlの定義ファイル書くだけ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
 stubcellでスタブを作って開発 
52 
Stubcell♡
yamlの定義ファイル書くだけ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
 stubcellでスタブを作って開発 
53 
Stubcell♡ 
最終的にこの定義ファイルが 
API仕様書となりコードに記録が残る
yamlの定義ファイル書くだけ 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
 stubcellでスタブを作って開発 
54 
Stubcell♡ 
最終的にこの定義ファイルが 
API仕様書となりコードに記録が残る
開発速度を上げて 
改善効率を上げる 
55 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
56 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Perl 
(Amon2) 
server side
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js / Perl 
57
Quizは基本的に早押し形式 
58 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
HTTPをPOSTする際の 
コネクションを繋ぎ直す 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
ミリ秒が惜しい 
59
60 
Server 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
解答送信 
結果受信 
解答送信 
結果受信 
遅い
Use the WebSocket Luke 
61 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
62 
Node.js 
(socket.io) 
一つの接続だけで解答と結果を送信 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
速い! 
解答送信 
結果受信
63 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
死活チェック 
DB 
Perl 
(Amon2) 
vs
64 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
死活チェック 
DB 
Perl 
(Amon2) 
起動しているサーバー 
をDBに格納 
vs
65 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
死活チェック 
DB 
Perl 
(Amon2) 
起動しているサーバー 
をDBに格納 
生きているサーバーを 
取りに行く 
vs
66 
vs 対戦マッチのサーバー 
を教える 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
死活チェック 
DB 
Perl 
(Amon2) 
起動しているサーバー 
をDBに格納 
生きているサーバーを 
取りに行く
67 
vs 対戦マッチのサーバー 
を教える 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
死活チェック 
DB 
Perl 
(Amon2) 
起動しているサーバー 
をDBに格納 
生きているサーバーを 
取りに行く 
Socket.ioサーバー 
で対戦
68 
vs 対戦マッチのサーバー 
を教える 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
Node.js 
(socket.io) 
死活チェック 
DB 
Perl 
(Amon2) 
起動しているサーバー 
をDBに格納 
生きているサーバーを 
取りに行く 
Socket.ioサーバー 
で対戦
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
まとめ 
69
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
まとめ 
 QuizNowはクイズで競いながら好きなものを思う存分語るための場所 
 工夫したところ 
 動画によりデザイナーとのコミュニケーションミスを無くす 
 WebのSingle Page Applicationにしつつ高速化を行い、 
ネイティブアプリとWebの遜色を無くす 
 WebSocketでクイズの早押し要素をサポート 
70
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
まとめ 
 QuizNowはクイズで競いながら好きなものを思う存分語るための場所 
 クイズを解いてコミュニティで語り 
 コミュニティで慣れ合いに飽きたらクイズで殴りあう 
 動画によりデザイナーとのコミュニケーションミスを無くす 
 WebのSingle Page ApplicationでネイティブアプリとWebの遜色を無く 
す 
 WebSocketでクイズの早押し要素をサポート 
71
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
最後に 
72
73 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
74 
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 
お約束 
 DeNAでは 
 優秀なPerl Monger 
 クールなNoder 
 オーサムなJSer 
 グレートなデザイナー 
 を募集してます!僕に一言声をかけるか 
 http://dena.com/recruit/career_recruit/ まで! 
75

More Related Content

PPTX
QuizNow yapcasia
PDF
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
PDF
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
PDF
FINAL FANTASY
 Record Keeper アニメーション制作の濃ゆい話
PDF
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
PPTX
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
PDF
DeNA流cocos2d xとの付き合い方
PDF
Unity開発で週イチ呑み会を支える技術
QuizNow yapcasia
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
FINAL FANTASY
 Record Keeper アニメーション制作の濃ゆい話
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNA流cocos2d xとの付き合い方
Unity開発で週イチ呑み会を支える技術

What's hot (20)

PDF
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
PPTX
FINAL FANTASY Record Keeperのマスターデータを支える技術
PDF
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
PDF
DeNAのゲーム開発を支える技術 (クライアントサイド編)
PDF
DeNA TechCon2016 360VR Live Streaming
PDF
FFRK cocos2d xレイヤーの最適化
PDF
FINAL FANTASY
 Record Keeper 演出データについて
PDF
【Saitama.js】Denoのすすめ
PDF
AWS Proton を使ってみた
PDF
Effective web performance tuning for smartphone
PDF
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
PDF
エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。
PDF
通販開発部の西田さん「通販開発マネジメントの5ルール」
PPTX
Unityで本格戦国シュミレーションRPG 開発
PDF
FFRKを支えるWebアプリケーションフレームワークの技術
PDF
位置情報を常に取得するのはつらいよ
PPT
制作を支えたツール達 (パズル戦隊デナレンジャー)
PDF
チラシルiOSでの広告枠開発
PDF
フライングゲットガチャ セミナー資料
PDF
【虎の穴ラボLT】非エンジニアにGASを教えた話(とらラボTech conference)
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
FINAL FANTASY Record Keeperのマスターデータを支える技術
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNA TechCon2016 360VR Live Streaming
FFRK cocos2d xレイヤーの最適化
FINAL FANTASY
 Record Keeper 演出データについて
【Saitama.js】Denoのすすめ
AWS Proton を使ってみた
Effective web performance tuning for smartphone
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。
通販開発部の西田さん「通販開発マネジメントの5ルール」
Unityで本格戦国シュミレーションRPG 開発
FFRKを支えるWebアプリケーションフレームワークの技術
位置情報を常に取得するのはつらいよ
制作を支えたツール達 (パズル戦隊デナレンジャー)
チラシルiOSでの広告枠開発
フライングゲットガチャ セミナー資料
【虎の穴ラボLT】非エンジニアにGASを教えた話(とらラボTech conference)
Ad

Similar to Quiznowを支える技術 #yapcasia (20)

PDF
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
PPTX
Unityネイティブプラグインマニアクス #denatechcon
PDF
NHNグループ合同勉強会 ライブドア片野
PDF
今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --
PDF
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
PDF
ドリコムを支える課金ライブラリを支えるJenkins
PDF
Deno で始めるフロントエンド
PDF
エンジニアとデザイナーの技術交流について
PDF
プライベートクラウド作ってみました
PDF
Deno 向け WEB 開発用のツールを作ったので 紹介します
PDF
6万行の TypeScript 移行とその後
PPTX
インターネットプログラミング 解説資料
PDF
ソーシャルアプリを分析してみた
PPTX
FINAL FANTASY Record Keeperを支えたGolang
PDF
「AROW」お披露目(実用編)
PPTX
オタク×Node.js勉強会
PDF
DeNAインフラの今とこれから - 今編 -
PDF
こんな辛いテストはいやだ
PDF
モデルアーキテクチャ観点からのDeep Neural Network高速化
PPTX
ドリコムのInfrastructure as code
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
Unityネイティブプラグインマニアクス #denatechcon
NHNグループ合同勉強会 ライブドア片野
今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
ドリコムを支える課金ライブラリを支えるJenkins
Deno で始めるフロントエンド
エンジニアとデザイナーの技術交流について
プライベートクラウド作ってみました
Deno 向け WEB 開発用のツールを作ったので 紹介します
6万行の TypeScript 移行とその後
インターネットプログラミング 解説資料
ソーシャルアプリを分析してみた
FINAL FANTASY Record Keeperを支えたGolang
「AROW」お披露目(実用編)
オタク×Node.js勉強会
DeNAインフラの今とこれから - 今編 -
こんな辛いテストはいやだ
モデルアーキテクチャ観点からのDeep Neural Network高速化
ドリコムのInfrastructure as code
Ad

Quiznowを支える技術 #yapcasia