SlideShare a Scribd company logo
Copyright © DeNA Co.,Ltd. All Rights Reserved.Copyright © DeNA Co.,Ltd. All Rights Reserved.
まだまだ戦えるweb!
Mithril.js 最初の1歩
株式会社 DeNA Games Osaka
技術編成部
森 啓介 keisuke.a.mori@dena.com
Copyright © DeNA Co.,Ltd. All Rights Reserved.
まずは自己紹介
■ 森 啓介 (もり けいすけ) keisuke mori
■ 株式会社 DeNA Games Osaka 2016年 5月 入社
■ 元コミュニティ系 Webアプリケーションエンジニア
■ 5歳の男の子と3歳の女の子、2児のパパさん
■ 今は某450万人ユーザー超えブラウザゲームの開発・運用をメインでやっ
てます
■ 一応FaceBook (https://www.facebook.com/milksoap777)
■ IT勉強会、初登壇です← (ここ大事)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
ブラウザゲームの
開発・運用を
メインでやってます
Copyright © DeNA Co.,Ltd. All Rights Reserved.
え?
Copyright © DeNA Co.,Ltd. All Rights Reserved.
ブラウザゲームって
まだ稼働してるの?
Copyright © DeNA Co.,Ltd. All Rights Reserved.
DeNAでは、まだまだブラウザタイトルも現役で稼働中!
※2016年度 第1四半期決算説明会資料より
Copyright © DeNA Co.,Ltd. All Rights Reserved.
アプリのゲーム技術も日々進化していますが、
ブラウザ(Web)ゲームの技術もまだまだ進化しています!
今日はそんなWeb技術の中から、1つだけご紹介!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.js
(みすりる じぇいえす)
http://mithril-ja.js.org/
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.js とは
■ クライアントサイドMVCフレームワーク
■ 軽量
■ 高い堅牢性
■ 非常に高速かつ、高いパフォーマンス
■ Route機能もありSPAにも最適!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.jsの特徴 - 1
■ クライアントサイドMVCフレームワーク
-> フレームワークでコードや構造をきれいに構成、
メンテナンスしやすいソースコードに
-> MVCモデルの詳細については割愛
■ 軽量
-> gzip圧縮したもので、たったの 7.8KB! (jquery-2.1.0.min.js で 82KB)
-> 他のライブラリへの依存がない
■ 高い堅牢性
-> Mithrilのテンプレートはデフォルトで安全な動作をするようになっており、
セキュリティホールが作られにくい設計となっている
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.jsの特徴 - 2
■ Virtual DOM 差分更新
-> 現在流行りの仮想DOM (最近で言うとReactとかmercuryとか有名)
-> 高速化
-> view関数が実行され、その関数が返すJavaScriptのオブジェクトを
キャッシュし、差分検知して表示する事で高速化を行っている
-> Reactとは違い、完全なMVCフレームワークとして提供されるので、
システム的に仮想DOMエンジンの効率が良い設計となっている
■ コンパイル可能なテンプレート
非常に高速
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.jsの特徴 - 3
■ 現存するクライアントサイドMVCフレームワークで最速級
-> イベントハンドラが完了したタイミングで再描画を仕掛けるという仕組み
-> なるべく再描画自体の回数や頻度を最小にすることで高速化
-> 必要であればController側から強制的に再描画をしかけることもできる
高いパフォーマンス
( ※公式サイト ベンチマークテスト結果より )
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.jsの特徴 - 4
■ 充実したドキュメンテーション
-> この手のフレームワークには珍しいちゃんとした公式の日本語翻訳サイト
■ 小さくシンプルなAPI
-> 関数はわずか23個、主要なAPIは4個程度
-> ソースコードは1500行くらい、困った時にソースを追っても苦にならない
■ オライリーからも本が出てるよ!
-> http://www.oreilly.co.jp/books/9784873117447/
学習が容易
Copyright © DeNA Co.,Ltd. All Rights Reserved.
そんな Mithril.js ですが、
DeNA Osakaでは……!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
現在運用中の
ブラウザタイトルの
新イベントに採用!
現在
鋭意開発中!!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
さらに!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
DeNAが運営している
mobage Developers blog にも
大阪から記事を寄稿してます!
(http://developers.mobage.jp/blog/mithril-introduction)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
では、実際のコードを少しだけご紹介
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.jsの書き方 - 1
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.jsの書き方 - 2
■ Modelの定義
-> m.request ( http://mithril-ja.js.org/mithril.request.html )
ちなみに json の中身はこんな感じ
Copyright © DeNA Co.,Ltd. All Rights Reserved.
m()
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithrilでは、[ m ]という
予めmithrilが用意した関数を使用して
全てのAPIを操作します!!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.jsの書き方 - 3
■ ControllerとViewの定義
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.jsの書き方 - 4
■ Viewをもうちょっと詳しく
<a href="getting-started.html">Getting Started</a>
これが
こう出力される
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.jsの書き方 - 5
■ 初期化
m.mountで指定したDOMに対して、初期化を行う
<div id="example"></div>
Copyright © DeNA Co.,Ltd. All Rights Reserved.
簡単!!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
その他 - 1
jQueryとの相性はあまり良くない
-> 仮想DOMを扱うMithril.jsと生DOMを扱うjQueryは相性が悪い
実際に実装して詰まったところ!
-> JQueryのプラグインと組み合わせるときに、
最初のレンダリング時だけ初期化処理を走らせたい!!
↓ (何も考えずに書くと)
DOMの生成タイミングが不明!何か変更する度に初期化処理が走る!
生DOMの操作が必要になる場合は「config擬似属性」というものを使って、
初回レンダリング時に色々とよしなに出来る!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
その他 - 2
そもそもDOMの構築が面倒くさい!
-> マークアップするのに、m(“ほにゃらら”)とか書いてもよくわかんない!
公式のHTML→Mithrilテンプレート変換ツールもあります
-> m() を手で書きまくらないと駄目かというとそんなことはない (安心)
http://mithril.js.org/tools/template-converter.html
また、React.jsのJSXツールをカスタマイズしてMithrilの内部DSL形式の
テンプレートに変換するように改造されたMSXというものもある(らしい)
Returnで直接DOMを書く事も出来る!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Mithril.js
Copyright © DeNA Co.,Ltd. All Rights Reserved.
引き続きDeNAでは、
アプリタイトルも
ブラウザタイトルも、
盛り上げてまいります!!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
DeNA Osakaでは
一緒にゲームを創る仲間も
募集中!!
Copyright © DeNA Co.,Ltd. All Rights Reserved.
ご清聴ありがとうございました!

More Related Content

What's hot

Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906Takayuki Niinuma
 
【前半】上級ウェブ解析士取得後のウェブ業界のキャリア
【前半】上級ウェブ解析士取得後のウェブ業界のキャリア【前半】上級ウェブ解析士取得後のウェブ業界のキャリア
【前半】上級ウェブ解析士取得後のウェブ業界のキャリア
Sae Kanou
 
Decade 20121230
Decade 20121230Decade 20121230
Decade 20121230武 河野
 
最愛戦略とその戦術としてのアクティブサポート
最愛戦略とその戦術としてのアクティブサポート最愛戦略とその戦術としてのアクティブサポート
最愛戦略とその戦術としてのアクティブサポート
武 河野
 
20160416 jaws days 2016 re cap
20160416 jaws days 2016 re cap20160416 jaws days 2016 re cap
20160416 jaws days 2016 re cap
Shinya Yamada
 
メンバーズグループ福岡Meetup/メンバーズエッジに入社して変わったこと
メンバーズグループ福岡Meetup/メンバーズエッジに入社して変わったことメンバーズグループ福岡Meetup/メンバーズエッジに入社して変わったこと
メンバーズグループ福岡Meetup/メンバーズエッジに入社して変わったこと
Members_corp
 
Decade 2014
Decade 2014Decade 2014
Decade 2014
武 河野
 
20191204_WordPressの教科書出版記念イベント_WordPress開発のツボ_森下
20191204_WordPressの教科書出版記念イベント_WordPress開発のツボ_森下20191204_WordPressの教科書出版記念イベント_WordPress開発のツボ_森下
20191204_WordPressの教科書出版記念イベント_WordPress開発のツボ_森下
Tomoya Hokari
 
Mercari ogawa cs_youngmeetup_20170123_今年の抱負
Mercari ogawa cs_youngmeetup_20170123_今年の抱負Mercari ogawa cs_youngmeetup_20170123_今年の抱負
Mercari ogawa cs_youngmeetup_20170123_今年の抱負
Naoki Ogawa
 
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
Hiroyuki Ishikawa
 
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
leverages_event
 
Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)
Hiroyuki Ishikawa
 
今から学ぶ!jQuery Mobile!
今から学ぶ!jQuery Mobile!今から学ぶ!jQuery Mobile!
今から学ぶ!jQuery Mobile!
Takami Kazuya
 
Mercari ogawa csjam6_20161020_csの仲間をつくろう
Mercari ogawa csjam6_20161020_csの仲間をつくろうMercari ogawa csjam6_20161020_csの仲間をつくろう
Mercari ogawa csjam6_20161020_csの仲間をつくろう
Naoki Ogawa
 
宮崎の山の中でリモートワークしてみた
宮崎の山の中でリモートワークしてみた宮崎の山の中でリモートワークしてみた
宮崎の山の中でリモートワークしてみた
Tomoe Sawai
 
社内SEはVBAを投げ捨ててPHPの夢を見るか?
社内SEはVBAを投げ捨ててPHPの夢を見るか?社内SEはVBAを投げ捨ててPHPの夢を見るか?
社内SEはVBAを投げ捨ててPHPの夢を見るか?
naoto teshima
 
Wakayama.rbが目指すもの
Wakayama.rbが目指すものWakayama.rbが目指すもの
Wakayama.rbが目指すもの
三七男 山本
 
WebPayからStripeに移行した話
WebPayからStripeに移行した話WebPayからStripeに移行した話
WebPayからStripeに移行した話
Takuro Niitsuma
 
アジャイルマインドの重要性
アジャイルマインドの重要性アジャイルマインドの重要性
アジャイルマインドの重要性
Akiyah
 

What's hot (19)

Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906
 
【前半】上級ウェブ解析士取得後のウェブ業界のキャリア
【前半】上級ウェブ解析士取得後のウェブ業界のキャリア【前半】上級ウェブ解析士取得後のウェブ業界のキャリア
【前半】上級ウェブ解析士取得後のウェブ業界のキャリア
 
Decade 20121230
Decade 20121230Decade 20121230
Decade 20121230
 
最愛戦略とその戦術としてのアクティブサポート
最愛戦略とその戦術としてのアクティブサポート最愛戦略とその戦術としてのアクティブサポート
最愛戦略とその戦術としてのアクティブサポート
 
20160416 jaws days 2016 re cap
20160416 jaws days 2016 re cap20160416 jaws days 2016 re cap
20160416 jaws days 2016 re cap
 
メンバーズグループ福岡Meetup/メンバーズエッジに入社して変わったこと
メンバーズグループ福岡Meetup/メンバーズエッジに入社して変わったことメンバーズグループ福岡Meetup/メンバーズエッジに入社して変わったこと
メンバーズグループ福岡Meetup/メンバーズエッジに入社して変わったこと
 
Decade 2014
Decade 2014Decade 2014
Decade 2014
 
20191204_WordPressの教科書出版記念イベント_WordPress開発のツボ_森下
20191204_WordPressの教科書出版記念イベント_WordPress開発のツボ_森下20191204_WordPressの教科書出版記念イベント_WordPress開発のツボ_森下
20191204_WordPressの教科書出版記念イベント_WordPress開発のツボ_森下
 
Mercari ogawa cs_youngmeetup_20170123_今年の抱負
Mercari ogawa cs_youngmeetup_20170123_今年の抱負Mercari ogawa cs_youngmeetup_20170123_今年の抱負
Mercari ogawa cs_youngmeetup_20170123_今年の抱負
 
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
 
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
 
Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)
 
今から学ぶ!jQuery Mobile!
今から学ぶ!jQuery Mobile!今から学ぶ!jQuery Mobile!
今から学ぶ!jQuery Mobile!
 
Mercari ogawa csjam6_20161020_csの仲間をつくろう
Mercari ogawa csjam6_20161020_csの仲間をつくろうMercari ogawa csjam6_20161020_csの仲間をつくろう
Mercari ogawa csjam6_20161020_csの仲間をつくろう
 
宮崎の山の中でリモートワークしてみた
宮崎の山の中でリモートワークしてみた宮崎の山の中でリモートワークしてみた
宮崎の山の中でリモートワークしてみた
 
社内SEはVBAを投げ捨ててPHPの夢を見るか?
社内SEはVBAを投げ捨ててPHPの夢を見るか?社内SEはVBAを投げ捨ててPHPの夢を見るか?
社内SEはVBAを投げ捨ててPHPの夢を見るか?
 
Wakayama.rbが目指すもの
Wakayama.rbが目指すものWakayama.rbが目指すもの
Wakayama.rbが目指すもの
 
WebPayからStripeに移行した話
WebPayからStripeに移行した話WebPayからStripeに移行した話
WebPayからStripeに移行した話
 
アジャイルマインドの重要性
アジャイルマインドの重要性アジャイルマインドの重要性
アジャイルマインドの重要性
 

Viewers also liked

海外で注目されてるJs framework “mithril”の特徴
海外で注目されてるJs framework “mithril”の特徴海外で注目されてるJs framework “mithril”の特徴
海外で注目されてるJs framework “mithril”の特徴
Shoyo Kyou
 
MySQLの文字コード事情
MySQLの文字コード事情MySQLの文字コード事情
MySQLの文字コード事情
Masahiro Tomita
 
彼女の紹介
彼女の紹介彼女の紹介
彼女の紹介
Shunsuke Kamiya
 
Mithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワークMithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワーク
sairoutine
 
Mithril
MithrilMithril
シリコンスタジオによる HDR出力対応の理論と実践
シリコンスタジオによるHDR出力対応の理論と実践シリコンスタジオによるHDR出力対応の理論と実践
シリコンスタジオによる HDR出力対応の理論と実践
Silicon Studio Corporation
 
マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD
マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DDマジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD
マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
 
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
Drecom Co., Ltd.
 
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザインCEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
Kouji Ohno
 
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
小林 信行
 
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みDeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
Toshiharu Sugiyama
 

Viewers also liked (12)

海外で注目されてるJs framework “mithril”の特徴
海外で注目されてるJs framework “mithril”の特徴海外で注目されてるJs framework “mithril”の特徴
海外で注目されてるJs framework “mithril”の特徴
 
MySQLの文字コード事情
MySQLの文字コード事情MySQLの文字コード事情
MySQLの文字コード事情
 
彼女の紹介
彼女の紹介彼女の紹介
彼女の紹介
 
Mithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワークMithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワーク
 
Mithril
MithrilMithril
Mithril
 
シリコンスタジオによる HDR出力対応の理論と実践
シリコンスタジオによるHDR出力対応の理論と実践シリコンスタジオによるHDR出力対応の理論と実践
シリコンスタジオによる HDR出力対応の理論と実践
 
マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD
マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DDマジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD
マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD
 
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
 
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザインCEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
 
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
 
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みDeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
 

Similar to まだまだ戦えるweb!mithril.js最初の1歩

【勉強会】 はじめてのRuby on Rails 4入門
【勉強会】 はじめてのRuby on Rails 4入門【勉強会】 はじめてのRuby on Rails 4入門
【勉強会】 はじめてのRuby on Rails 4入門
Yuta Nakamura
 
Deno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介しますDeno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介します
虎の穴 開発室
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
leverages_event
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニアヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
Isamu Suzuki
 
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
Yuto Komai
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
 
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかH2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
Ichito Nagata
 
SORACOM User Group Tokyo #10 | SORACOM US奮闘記! / SORACOMとIPアドレスと私
SORACOM User Group Tokyo #10 | SORACOM US奮闘記! / SORACOMとIPアドレスと私SORACOM User Group Tokyo #10 | SORACOM US奮闘記! / SORACOMとIPアドレスと私
SORACOM User Group Tokyo #10 | SORACOM US奮闘記! / SORACOMとIPアドレスと私
SORACOM,INC
 
自動運転に向けた取り組みと安全管理
自動運転に向けた取り組みと安全管理自動運転に向けた取り組みと安全管理
自動運転に向けた取り組みと安全管理
Kuwabara Kunihito
 
マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話
Makoto Haruyama
 
Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721
Norikazu Yura
 
大規模JavaScript開発
大規模JavaScript開発大規模JavaScript開発
大規模JavaScript開発
Yoshiki Shibukawa
 
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れるレガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
sairoutine
 
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a ServiceDeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
Makoto Haruyama
 
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
Tenki Lee
 
20111203 忘年会・交流会LT_糟谷さん資料
20111203 忘年会・交流会LT_糟谷さん資料20111203 忘年会・交流会LT_糟谷さん資料
20111203 忘年会・交流会LT_糟谷さん資料
WebSig24/7
 
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
虎の穴 開発室
 
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
Ouka Yuka
 
Decade 20091215
Decade 20091215Decade 20091215
Decade 20091215武 河野
 

Similar to まだまだ戦えるweb!mithril.js最初の1歩 (20)

【勉強会】 はじめてのRuby on Rails 4入門
【勉強会】 はじめてのRuby on Rails 4入門【勉強会】 はじめてのRuby on Rails 4入門
【勉強会】 はじめてのRuby on Rails 4入門
 
Deno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介しますDeno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介します
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニアヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
 
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかH2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
 
SORACOM User Group Tokyo #10 | SORACOM US奮闘記! / SORACOMとIPアドレスと私
SORACOM User Group Tokyo #10 | SORACOM US奮闘記! / SORACOMとIPアドレスと私SORACOM User Group Tokyo #10 | SORACOM US奮闘記! / SORACOMとIPアドレスと私
SORACOM User Group Tokyo #10 | SORACOM US奮闘記! / SORACOMとIPアドレスと私
 
自動運転に向けた取り組みと安全管理
自動運転に向けた取り組みと安全管理自動運転に向けた取り組みと安全管理
自動運転に向けた取り組みと安全管理
 
マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話
 
Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721
 
大規模JavaScript開発
大規模JavaScript開発大規模JavaScript開発
大規模JavaScript開発
 
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れるレガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
 
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a ServiceDeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
 
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
 
20111203 忘年会・交流会LT_糟谷さん資料
20111203 忘年会・交流会LT_糟谷さん資料20111203 忘年会・交流会LT_糟谷さん資料
20111203 忘年会・交流会LT_糟谷さん資料
 
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
 
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
 
Decade 20091215
Decade 20091215Decade 20091215
Decade 20091215
 

Recently uploaded

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDDなぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
ssuserfcafd1
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
Takuya Minagawa
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
Seiya Shimabukuro
 
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
Osaka University
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
Shinichi Hirauchi
 

Recently uploaded (15)

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDDなぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
 
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
 

まだまだ戦えるweb!mithril.js最初の1歩

  • 1. Copyright © DeNA Co.,Ltd. All Rights Reserved.Copyright © DeNA Co.,Ltd. All Rights Reserved. まだまだ戦えるweb! Mithril.js 最初の1歩 株式会社 DeNA Games Osaka 技術編成部 森 啓介 keisuke.a.mori@dena.com
  • 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. まずは自己紹介 ■ 森 啓介 (もり けいすけ) keisuke mori ■ 株式会社 DeNA Games Osaka 2016年 5月 入社 ■ 元コミュニティ系 Webアプリケーションエンジニア ■ 5歳の男の子と3歳の女の子、2児のパパさん ■ 今は某450万人ユーザー超えブラウザゲームの開発・運用をメインでやっ てます ■ 一応FaceBook (https://www.facebook.com/milksoap777) ■ IT勉強会、初登壇です← (ここ大事)
  • 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. ブラウザゲームの 開発・運用を メインでやってます
  • 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. え?
  • 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. ブラウザゲームって まだ稼働してるの?
  • 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNAでは、まだまだブラウザタイトルも現役で稼働中! ※2016年度 第1四半期決算説明会資料より
  • 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. アプリのゲーム技術も日々進化していますが、 ブラウザ(Web)ゲームの技術もまだまだ進化しています! 今日はそんなWeb技術の中から、1つだけご紹介!
  • 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.js (みすりる じぇいえす) http://mithril-ja.js.org/
  • 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.js とは ■ クライアントサイドMVCフレームワーク ■ 軽量 ■ 高い堅牢性 ■ 非常に高速かつ、高いパフォーマンス ■ Route機能もありSPAにも最適!
  • 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.jsの特徴 - 1 ■ クライアントサイドMVCフレームワーク -> フレームワークでコードや構造をきれいに構成、 メンテナンスしやすいソースコードに -> MVCモデルの詳細については割愛 ■ 軽量 -> gzip圧縮したもので、たったの 7.8KB! (jquery-2.1.0.min.js で 82KB) -> 他のライブラリへの依存がない ■ 高い堅牢性 -> Mithrilのテンプレートはデフォルトで安全な動作をするようになっており、 セキュリティホールが作られにくい設計となっている
  • 11. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.jsの特徴 - 2 ■ Virtual DOM 差分更新 -> 現在流行りの仮想DOM (最近で言うとReactとかmercuryとか有名) -> 高速化 -> view関数が実行され、その関数が返すJavaScriptのオブジェクトを キャッシュし、差分検知して表示する事で高速化を行っている -> Reactとは違い、完全なMVCフレームワークとして提供されるので、 システム的に仮想DOMエンジンの効率が良い設計となっている ■ コンパイル可能なテンプレート 非常に高速
  • 12. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.jsの特徴 - 3 ■ 現存するクライアントサイドMVCフレームワークで最速級 -> イベントハンドラが完了したタイミングで再描画を仕掛けるという仕組み -> なるべく再描画自体の回数や頻度を最小にすることで高速化 -> 必要であればController側から強制的に再描画をしかけることもできる 高いパフォーマンス ( ※公式サイト ベンチマークテスト結果より )
  • 13. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.jsの特徴 - 4 ■ 充実したドキュメンテーション -> この手のフレームワークには珍しいちゃんとした公式の日本語翻訳サイト ■ 小さくシンプルなAPI -> 関数はわずか23個、主要なAPIは4個程度 -> ソースコードは1500行くらい、困った時にソースを追っても苦にならない ■ オライリーからも本が出てるよ! -> http://www.oreilly.co.jp/books/9784873117447/ 学習が容易
  • 14. Copyright © DeNA Co.,Ltd. All Rights Reserved. そんな Mithril.js ですが、 DeNA Osakaでは……!
  • 15. Copyright © DeNA Co.,Ltd. All Rights Reserved. 現在運用中の ブラウザタイトルの 新イベントに採用! 現在 鋭意開発中!!
  • 16. Copyright © DeNA Co.,Ltd. All Rights Reserved. さらに!
  • 17. Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNAが運営している mobage Developers blog にも 大阪から記事を寄稿してます! (http://developers.mobage.jp/blog/mithril-introduction)
  • 18. Copyright © DeNA Co.,Ltd. All Rights Reserved. では、実際のコードを少しだけご紹介
  • 19. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.jsの書き方 - 1
  • 20. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.jsの書き方 - 2 ■ Modelの定義 -> m.request ( http://mithril-ja.js.org/mithril.request.html ) ちなみに json の中身はこんな感じ
  • 21. Copyright © DeNA Co.,Ltd. All Rights Reserved. m()
  • 22. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithrilでは、[ m ]という 予めmithrilが用意した関数を使用して 全てのAPIを操作します!!
  • 23. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.jsの書き方 - 3 ■ ControllerとViewの定義
  • 24. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.jsの書き方 - 4 ■ Viewをもうちょっと詳しく <a href="getting-started.html">Getting Started</a> これが こう出力される
  • 25. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.jsの書き方 - 5 ■ 初期化 m.mountで指定したDOMに対して、初期化を行う <div id="example"></div>
  • 26. Copyright © DeNA Co.,Ltd. All Rights Reserved. 簡単!!
  • 27. Copyright © DeNA Co.,Ltd. All Rights Reserved. その他 - 1 jQueryとの相性はあまり良くない -> 仮想DOMを扱うMithril.jsと生DOMを扱うjQueryは相性が悪い 実際に実装して詰まったところ! -> JQueryのプラグインと組み合わせるときに、 最初のレンダリング時だけ初期化処理を走らせたい!! ↓ (何も考えずに書くと) DOMの生成タイミングが不明!何か変更する度に初期化処理が走る! 生DOMの操作が必要になる場合は「config擬似属性」というものを使って、 初回レンダリング時に色々とよしなに出来る!
  • 28. Copyright © DeNA Co.,Ltd. All Rights Reserved. その他 - 2 そもそもDOMの構築が面倒くさい! -> マークアップするのに、m(“ほにゃらら”)とか書いてもよくわかんない! 公式のHTML→Mithrilテンプレート変換ツールもあります -> m() を手で書きまくらないと駄目かというとそんなことはない (安心) http://mithril.js.org/tools/template-converter.html また、React.jsのJSXツールをカスタマイズしてMithrilの内部DSL形式の テンプレートに変換するように改造されたMSXというものもある(らしい) Returnで直接DOMを書く事も出来る!
  • 29. Copyright © DeNA Co.,Ltd. All Rights Reserved. Mithril.js
  • 30. Copyright © DeNA Co.,Ltd. All Rights Reserved. 引き続きDeNAでは、 アプリタイトルも ブラウザタイトルも、 盛り上げてまいります!!
  • 31. Copyright © DeNA Co.,Ltd. All Rights Reserved. DeNA Osakaでは 一緒にゲームを創る仲間も 募集中!!
  • 32. Copyright © DeNA Co.,Ltd. All Rights Reserved. ご清聴ありがとうございました!