SlideShare a Scribd company logo
1 of 69
Download to read offline
で というOSSを作ったお話。
Riot.js 勉強会 @Tokyo #3
2018年4月5日
VIRON
- 自己紹介
- オレオレ解釈でこれまでのフロントエンドの歴史を振り返る
- Viron紹介
- 自作した周辺ライブラリ群
- VironでのRiotの使い方
アジェンダ
大谷 剛
2010 株式会社サイバーエージェント入社
2017 株式会社シーエー・モバイル出向
歴は1年ほど
フロントエンドエンジニア
github: cathcheeno
オレオレ解釈で
これまでのフロントエンドの歴史を振り返る
フロントエンド 有名なライブラリは?
.etc
.etc
コンポーネント指向のViewライブラリ
オレオレ解釈 こんな歴史
古き良き時代。
変化が求められる時代。
HTMLがHyperに使われる。
のサービスのフロントエンドは?
VIRON
を作ることに。
Vironが求めるViewライブラリは、
みたいなコンポーネント指向Viewライブラリで、
みたいなコンポーネント指向Viewライブラリで、
難しくないもの。学習難易度が低いもの。
みたいなコンポーネント指向Viewライブラリで、
難しくないもの。学習難易度が低いもの。
他プロジェクトでも使えるもの。社内ノウハウを溜めれるもの。
みたいなコンポーネント指向Viewライブラリで、
難しくないもの。学習難易度が低いもの。
他プロジェクトでも使えるもの。社内ノウハウを溜めれるもの。
VIRON
って何?
OSS
VIRON
by
運用管理ツール
VIRON
VIRON
プロジェクト
プロジェクト
API
プロジェクト
API
プロジェクト
API
プロジェクト
API
プロジェクト
API
プロジェクト
API
プロジェクト
API
プロジェクト
API
https://github.com/cam-inc/viron
デモサイト
みたいなコンポーネント指向Viewライブラリで、
難しくないもの。学習難易度が低いもの。
他プロジェクトでも使えるもの。社内ノウハウを溜めれるもの。
とはいえ、
とはいえ、
とはいえ、
公式サイト以外の情報リソースが少ない。
とはいえ、
公式サイト以外の情報リソースが少ない。
関連ライブラリが少ない。
とはいえ、
公式サイト以外の情報リソースが少ない。
関連ライブラリが少ない。
HOCやrender-propsのようなプラクティスが少ない。使えない。
とはいえ、
公式サイト以外の情報リソースが少ない。
関連ライブラリが少ない。
HOCやrender-propsのようなプラクティスが少ない。使えない。
「HTML in JS」ではなく「JS in HTML」。
でも、
は、シンプル・簡単さがウリ。
- Riotはシンプル。そこからブレない。
- 多くは求めない。
- 無ければ作る。
- 「100% x 複雑」よりも「90% x 簡単」を選ぶ。
基本方針
状態管理ライブラリがなかったので...
状態管理ライブラリがなかったので...
RiotX
https://github.com/cam-inc/riotx
状態管理ライブラリがなかったので...
RiotX
https://github.com/cam-inc/riotx
VueX
https://vuex.vuejs.org/
のRiot版です。
ほとんどVueXと一緒です。
https://codepen.io/fkei/pen/ybmNqN?editors=1010#0
良いルーターがなかったので...
良いルーターがなかったので...
esr
https://github.com/cam-inc/esr
esr
https://github.com/cam-inc/esr
esr
https://github.com/cam-inc/esr
esr
https://github.com/cam-inc/esr
esr
https://github.com/cam-inc/esr
「/foo」 -> 「/bar」に変わったら、
onBefore
onEnter
onAfter
の順に実行される。非同期実行も出来る。
esr
https://github.com/cam-inc/esr
onBefore
onEnter
onAfter
事前に「:userId」のユーザ情報を取得。
(存在しなければTOPへリダイレクト。)
「/users/:userId」へ遷移した場合。
「:userId」のユーザ情報を画面に出力。
i.e.) riot.mount();
正常に画面出力が完了。
Google Analytics等、PV+1する。
みたいに使用できる。
VIRON
ではこう実装してます
使い回し可能なRiotタグ群。コンポーネント。
エントリーポイント。
URLに紐付いて表示されるページ。
ルーター。esr。
状態管理。RiotX。
ディレクトリ構造
RiotタグのJS部。
「viron-」プレフィックス。
RiotタグのHTML部。
HTMLとJSは別ファイルで管理しています。
「onTap」でDesktop/Mobile両デバイスに対応。
Desktop / Mobileへの対応
「false」にしています。
Presentationalなコンポーネントに。
Presentationalなコンポーネントに。
i.e.
- optsを積極的に使用。
- コールバック関数を実行するだけ。
- this内でデータを管理しない。
- storeを監視しない。
mixinで
- RiotXとコネクト。
- esr(ルーター)とコネクト。
- i18n関連。
- .etc
その他、懇親会にて。
ご清聴ありがとうございました m( _ _ )m

More Related Content

What's hot

瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~Hirokazu Onomichi
 
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価Hirokazu Onomichi
 
ROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみるROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみるmozyanari
 
OCamlの多相Variant紹介 #fpstudy
OCamlの多相Variant紹介 #fpstudyOCamlの多相Variant紹介 #fpstudy
OCamlの多相Variant紹介 #fpstudykyon mm
 
Rubyistのためのkotlin紹介
Rubyistのためのkotlin紹介Rubyistのためのkotlin紹介
Rubyistのためのkotlin紹介豊明 尾古
 
STMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作るSTMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作るmozyanari
 
第4回瀬戸内ROS勉強会LT資料
第4回瀬戸内ROS勉強会LT資料第4回瀬戸内ROS勉強会LT資料
第4回瀬戸内ROS勉強会LT資料NaotakaKawata
 
VRから始めるVTuber世界の予算と未来 @XR Tech Tokyo #9
VRから始めるVTuber世界の予算と未来 @XR Tech Tokyo #9VRから始めるVTuber世界の予算と未来 @XR Tech Tokyo #9
VRから始めるVTuber世界の予算と未来 @XR Tech Tokyo #9Halne Kim
 
Ros#を使ったROSとxRデバイスの通信
Ros#を使ったROSとxRデバイスの通信Ros#を使ったROSとxRデバイスの通信
Ros#を使ったROSとxRデバイスの通信mozyanari
 
Iron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリIron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリYamamoto Kazuhisa
 
コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話Shinobu Okano
 
20151010 四国クラウドお遍路2015 LT
20151010 四国クラウドお遍路2015 LT20151010 四国クラウドお遍路2015 LT
20151010 四国クラウドお遍路2015 LTMidori Ikegami
 
Pythonでも型をつけたいだけの人生だった
Pythonでも型をつけたいだけの人生だったPythonでも型をつけたいだけの人生だった
Pythonでも型をつけたいだけの人生だったhiroya akita
 

What's hot (15)

瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
 
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
 
Kotlinの紹介
Kotlinの紹介Kotlinの紹介
Kotlinの紹介
 
ROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみるROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみる
 
OCamlの多相Variant紹介 #fpstudy
OCamlの多相Variant紹介 #fpstudyOCamlの多相Variant紹介 #fpstudy
OCamlの多相Variant紹介 #fpstudy
 
Rubyistのためのkotlin紹介
Rubyistのためのkotlin紹介Rubyistのためのkotlin紹介
Rubyistのためのkotlin紹介
 
STMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作るSTMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作る
 
第4回瀬戸内ROS勉強会LT資料
第4回瀬戸内ROS勉強会LT資料第4回瀬戸内ROS勉強会LT資料
第4回瀬戸内ROS勉強会LT資料
 
VRから始めるVTuber世界の予算と未来 @XR Tech Tokyo #9
VRから始めるVTuber世界の予算と未来 @XR Tech Tokyo #9VRから始めるVTuber世界の予算と未来 @XR Tech Tokyo #9
VRから始めるVTuber世界の予算と未来 @XR Tech Tokyo #9
 
Ros#を使ったROSとxRデバイスの通信
Ros#を使ったROSとxRデバイスの通信Ros#を使ったROSとxRデバイスの通信
Ros#を使ったROSとxRデバイスの通信
 
Logcatの話
Logcatの話Logcatの話
Logcatの話
 
Iron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリIron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリ
 
コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話
 
20151010 四国クラウドお遍路2015 LT
20151010 四国クラウドお遍路2015 LT20151010 四国クラウドお遍路2015 LT
20151010 四国クラウドお遍路2015 LT
 
Pythonでも型をつけたいだけの人生だった
Pythonでも型をつけたいだけの人生だったPythonでも型をつけたいだけの人生だった
Pythonでも型をつけたいだけの人生だった
 

Similar to RiotでVironというOSSを作ったお話。

TensorFlowによるFizz Buzz
TensorFlowによるFizz BuzzTensorFlowによるFizz Buzz
TensorFlowによるFizz Buzzyaju88
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみたYoshiki Shibukawa
 
データサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたことデータサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたことTokoroten Nakayama
 
開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamobaishikawa akira
 
Android 開発を加速するオープンソースライブラリ
Android 開発を加速するオープンソースライブラリAndroid 開発を加速するオープンソースライブラリ
Android 開発を加速するオープンソースライブラリ健一 辰濱
 
ゆるふわWoT&firefoxOS体験記
ゆるふわWoT&firefoxOS体験記ゆるふわWoT&firefoxOS体験記
ゆるふわWoT&firefoxOS体験記Mitsuru Ogawa
 
「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化Hirokazu Kutsu
 
Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Takahiro Fujiwara
 
SDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNoteSDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNoteTakahiro Yonei
 

Similar to RiotでVironというOSSを作ったお話。 (9)

TensorFlowによるFizz Buzz
TensorFlowによるFizz BuzzTensorFlowによるFizz Buzz
TensorFlowによるFizz Buzz
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
 
データサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたことデータサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたこと
 
開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba
 
Android 開発を加速するオープンソースライブラリ
Android 開発を加速するオープンソースライブラリAndroid 開発を加速するオープンソースライブラリ
Android 開発を加速するオープンソースライブラリ
 
ゆるふわWoT&firefoxOS体験記
ゆるふわWoT&firefoxOS体験記ゆるふわWoT&firefoxOS体験記
ゆるふわWoT&firefoxOS体験記
 
「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化
 
Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方
 
SDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNoteSDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNote
 

RiotでVironというOSSを作ったお話。