SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
@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

Más contenido relacionado

La actualidad más candente

Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.kiki utagawa
 
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Sho Yoshida
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバzgock
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法kazkiti
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)AtCoder Inc.
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門NVIDIA Japan
 
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...NTT DATA Technology & Innovation
 
【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならね
【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならね【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならね
【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならねUnityTechnologiesJapan002
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺MITSUNARI Shigeo
 
Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法Masashi Shibata
 
計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミングNorishige Fukushima
 
第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料直久 住川
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザktateish
 
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato KinugawaCODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato KinugawaCODE BLUE
 
MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編MicroAd, Inc.(Engineer)
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみたwata2ki
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するYoshifumi Kawai
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディングTakuya ASADA
 

La actualidad más candente (20)

Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
 
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバ
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
 
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
 
GNU Radio Study for Super beginner
GNU Radio Study for Super beginnerGNU Radio Study for Super beginner
GNU Radio Study for Super beginner
 
【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならね
【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならね【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならね
【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならね
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 
Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法
 
計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング
 
第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
 
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato KinugawaCODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
 
MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみた
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
 

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