SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
@maxmellon
2016.11.26 @ 「首領(Red	Coder)への道」 勉強会という名のオフ会
コメントビュアーを
作った話
⽬次
0.	自己紹介
1. コメビュを作った背景
2. コメビュの構成
3. 現状と課題
0. ⾃⼰紹介
はじめまして
mexmellonと申します
今⽇はうどん県から
きました
基本情報
○ 京都府宇治市 出身
響け!ユーフォニアム とか平等院とか
抹茶はすきです
○ 現在は香川県
うどん好きです
最大 うどんストリーク は29 です
○ 22歳 学生
エンジニアとしての基本情報
○ いつも使ってる開発用ツール
○ Vim	8.0	(CLPUM)		:	エディタ
○ tmux 2.2																	:	ターミナルマルチプレクサ
○ Zsh 5.1.1																	:	シェル
○ 好きなプログラミング言語やライブラリ
○ javascript (React.js /	Redux)
言語問わず,フロントのほうが好み
個⼈的に好きなやつ
○ うどん
個⼈的に好きなやつ
○ 和太鼓
個⼈的に好きなやつ
○ ニコ生
主なプロダクト
⾃慢
⼤切に考えてること
○ 日々の努力
コツコツがコツ
Githubの草をモチベーションにしている
今⽇は,
コメビュ作った話
しようとおもう
1. コメントビュアー
作った背景
背景
よっしゃMacを
⼿に⼊れたぞ
背景
さっそくニコ⽣⾒るために
コメビュ⼊れるぞ〜
背景
ん?ちょっと待って
ないやん
(※厳密にはあるが,なんか⼊れるのがだるそうだった)
背景
コメビュ 作り⽅ [検索]
背景
背景
理想のコメビュが
なければ作れば
いいじゃない
できたもの comelon
これから,
こだわった点と
アーキテクチャに
触れていきます
2. 構成
Layout
Header
Footer
Body
Timeline	of	comment
Layout
○ Header
○ Footer
live	id form connect
button
configuration
button
comment	form submit
comment
184
toggle
System Constitution
○ Language													: javascript
○ NicoLiveEngine :			59naga/nicolive
○ Framework									: github/electron
○ Architecture							: facebook/flux
○ Template													: facebook/React.js
○ Bundler															: webpack/webpack
○ Transpile : babel/babel
○ Unit	Test,													:		mocha
○ e2e	Test															:		nightmare
○ Language													: javascript
○ NicoLiveEngine :			59naga/nicolive
○ Framework									: github/electron
○ Architecture							: facebook/flux
○ Template													: facebook/React.js
○ Bundler															: webpack/webpack
○ Transpile : babel/babel
○ Unit	Test,													:		mocha
○ e2e	Test															:		nightmare	
System Constitution
Summarizing	the	above,	I	made	a	desktop	
application	with	Web	technology.
Why using React not jQuery ?
○ Useful	Diff	rendering	API
React	compares	to	previous	and	next	state.
From	there,	draw	a	minimum	amount	of	drawing.
If	you	do	this	with	jQuery	it	will	be	very	hard.
○ React	is	minimum
jQuery	contain	many	function:	Promise,	ajax,	etc…
But	currently	mainstream	is	combining
small	libraries.
Facebook/flux
An	application	architecture	for	React	utilizing	
a	unidirectional	data	flow.
Facebook/flux
An	application	architecture	for	React	utilizing	
a	unidirectional	data	flow.
Flux	is	unidirectional	data	flow	
contain	use	observer	pattern.
What advantage?
○ Manage	of	state	outside	View	Component
・ Decrease	complex	of	Component
・ The	role	becomes	clear
○ increase	debug	ability
・ Because,	split	layer	by	role
Example
3. 現状と課題
現状と課題
○ 棒読み
・ コメント量が多いとき読み上げが詰まる
・ 誤った読み上げが多い
○ コメビュ
・ 王手放送主や,弾幕でパフォーマンスの問題
・ 縦長にするとコメントフォームが小さい
・ コテハン記録できていない
・ 表示できるコメントの数がすくない
やりたいことと
・ コメント量に応じた読み上げ速度の動的変更
・ 音声再生エンジンをセレクタブルに
・ 辞書機能の作成
・ パフォーマンスチューニング
・ UI改善
・ コテハン記録
・ ニコ生エンジンの変更
nicolive ->	nagome
まとめ
○ コメビュを作って js 力を手にした
・ いまでは,自分の中で一番実装速度が早い言語に
○ コメビュを通してアーキテクチャ
を考えるようになった
・ Flux が与えた僕への影響は大きい
○ ニコ生視聴者エンジニアは
コメントビューアを作成するべき
comelon-v2 開発開始 !
○ Flux から Redux	へ
https://github.com/MaxMEllon/comelon-v2

Contenu connexe

Tendances

初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話mariydi1
 
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向SSII
 
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点Taiji Suzuki
 
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズムTakuya Akiba
 
分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17Takuya Akiba
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとはTakuya Akiba
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpsonickun
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編Fixstars Corporation
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)Kentaro Minami
 
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説AtCoder Inc.
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編Daiyu Hatakeyama
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Yoshitaka Ushiku
 

Tendances (20)

初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
 
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
 
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点
 
Binary indexed tree
Binary indexed treeBinary indexed tree
Binary indexed tree
 
1次式とノルムで構成された最適化問題とその双対問題
1次式とノルムで構成された最適化問題とその双対問題1次式とノルムで構成された最適化問題とその双対問題
1次式とノルムで構成された最適化問題とその双対問題
 
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
 
分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17
 
Group normalization
Group normalizationGroup normalization
Group normalization
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Chokudai search
Chokudai searchChokudai search
Chokudai search
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
 
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 
異常検知
異常検知異常検知
異常検知
 

コメントビュアーを作った話