SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Developer tools 表示しとけば
ネトゲやってても仕事してる感
でる
自己紹介
• DMM入社2年目
• フロントエンド周りの経験も2年目
• ゲーム作る係
• ニート期間は1年(もう社歴の方が長いので安心)
今日しゃべること
ネトゲしたいけど仕事してるふりしないとなので
DevTools開いとくけど、
急に上司が来た時に慌てないように色々覚えておきたい。
今日しゃべること
• ブレークポイントをいじくってみる
• 計測ツールとして使ってみる
• 小ネタ(時間あったら)
ブレークポイント
フツーのやつ
ポチーってすると止まる奴
これは別にいいでしょ
条件付き
ブレークポイント
なんですかそれ
特定の条件に合致した場合に

止まるブレークポイント
なんですかそれ
特定の条件に合致した場合に

止まるブレークポイント
ともかくやってみよう
ブレークポイントを
右クリックして
出てきたボックスに
コードを書く
ブレークポイントを
右クリックして
出てきたボックスに
コードを書く
i==5
止まった!
ブレークポイントを
右クリックして
出てきたボックスに
コードを書く
i==5;console.log(i);
止まらない…
どういうことなのか
特定の条件に合致した場合に

止まるブレークポイント
↓
実行内容がtrueを返したら

止まるコード挿入ポイント
特定の条件に合致した場合に

止まるブレークポイント
↓
実行内容がtrueを返したら

止まるコード挿入ポイント
書いてありますな…
「true返したら止まるよ」としかない…
…なんか色々書けそうな気が
変数の中身を変えてみたり
i=5;
ループおわんない
jQuery直接つっこんでみる
jQueryオブジェクト
ちゃんと呼べる!
非同期通信とか
ちゃんと動く!
割りとなんでも書けそう
実装中の関数をテストしたり
console.timeではさんで速度計測とか
あとリロードしても消えないの便利

というかブラウザ落とさない限りタブ消しても生きて
る
通信の
ブレークポイント
なんですかそれ
ページ内で通信が発生したら止めるブレークポイント
まんまですな
通信発生時にフックして

ブレークする
何も入力しないと

Any XHR
として非同期通信が発生し
たら全部止めてくれる
特定のドメイン、ポートで絞
り込んで見る
右の例では
http://localhost:8000/
へのリクエストを発行して
いるので、対象のブレーク
ポイントで停止している
URLを入れれば対象が絞られる
↓
文字列として評価しているぽい(多分
http://localhost:8000/json/hrpk.js
へのリクエスト
ブレークポイント1:localhost:80
ブレークポイント2:localhost:8000
どっちのブレークポイントでもヒットする
片方あたったらもう片方は無視ということらしい
リクエストの再発行
typeがXHRのリソースは
右クリックからリプレイで
きるので!
通信のブレークポイントと
組み合わせて使いましょう!
計測ツール
フロントエンドの担当者は
クレームのフロントエンドになりやすい
※俺調べ(単なる印象かも…)
よくある話
「夜中だけ検索ページが重い」
「スマホだけトップページが重い」
「ページが重い」
「ページが重い」
「ページが重い」
フ、フロント(だけ)のせいじゃねーし!!

ネットワーク?とかそういうやつのせいかもですし!
とは言え

調べもしないで何も言えないので
Developer toolsに頼る
• Networkパネル
• Timelineパネル
• Profilesパネル
• Networkパネル

 コンテンツのダウンロード時間

 各リクエストの詳細とか
• Timelineパネル

 ダウンロードやレンダリングの時系列を調べる

 パフォーマンス悪いJS/CSSを漁ったりとか
• Profilesパネル

 CPUとかメモリの使用量を記録
• Networkパネル

 コンテンツのダウンロード時間

 各リクエストの詳細とか

→フロント以外のせい要因探したいんで、今回はこれ
• Timelineパネル

 ダウンロードやレンダリングの時系列を調べる

 パフォーマンス悪いJS/CSSを漁ったりとか
• Profilesパネル

 CPUとかメモリの使用量を記録
とは言うものの、どうしよ…
通信周りから調べる

→ HARファイルを使ってみる


HARって何



・Http ARchivesの略



・Webサイトの解析をした結果情報

 (リクエスト数、ページ容量、ロード時間など)を

 記載したファイル



・中身はJSON
「夜中だけサイトが重い」

↓

朝・昼・夕・夜など

各時間帯でHARをとって比較してみる
「スマホだけサイトが重い」

↓

PCとスマホで分けてHARをとって比較してみる
リソースのリストから
右クリック
Copy All as HAR
または
Save as HAR with
Content
リソースのリストから
右クリック
Copy All as HAR
または
Save as HAR with
Content
確保出来たけどどうしたもんか…
比較用ツール
HAR Viewer

https://github.com/janodvarko/
harviewer/
とは言え
毎回手で取るのはダルい
PhantomJSを使います

http://phantomjs.org/
公式からDL後
パスを通して実行
$ phantomjs js/netsniff.js http://www.dmm.com/
> dmm.com.har.json
公式からDL
パスを通して実行
$ phantomjs js/netsniff.js http://www.dmm.com/
> dmm.com.har.json
あとはcrontabに登録したりで定期実行
色々みたけど結局どこに手を付ければいいのか…
Auditsパネルを
見ましょう
Auditsパネル
• Audit

【名詞】

会計検査,(会社などの)検査

(問題の)審査

【動詞】

<会計を>検査する

Webサイトの検査をしてく
れるパネル
ネットワーク
ページパフォーマンス
2方向から検査してくれる
Select All と Reload Page…
に設定してRun押せばいいでしょ
目を逸らしてたこといっぱい出てくる…
JSまとめろ
gzipで送れ
キャッシュさせろ
使ってないCSSどうにかしろ
                などなど…
Auditsパネルで言われてることなんて知ってるよ!
もうやってるし!どうしたらいいんだよ!
がんばりましょう!
ありがとうございました!!!

Contenu connexe

En vedette

スマートフォンのアクセス解析のありがちなこと
スマートフォンのアクセス解析のありがちなことスマートフォンのアクセス解析のありがちなこと
スマートフォンのアクセス解析のありがちなことMasaki Saito
 
CV勉強会@関東 3巻3章4節 画像表現
CV勉強会@関東 3巻3章4節 画像表現CV勉強会@関東 3巻3章4節 画像表現
CV勉強会@関東 3巻3章4節 画像表現Yusuke Uchida
 
Inside-Outカメラからの3次元Scan Pathとシーン構造の復元
Inside-Outカメラからの3次元Scan Pathとシーン構造の復元Inside-Outカメラからの3次元Scan Pathとシーン構造の復元
Inside-Outカメラからの3次元Scan Pathとシーン構造の復元Hironobu Fujiyoshi
 
VIEW2013 Binarycode-based Object Recognition
VIEW2013 Binarycode-based Object RecognitionVIEW2013 Binarycode-based Object Recognition
VIEW2013 Binarycode-based Object RecognitionHironobu Fujiyoshi
 
チュートリアルのススメ -チュートリアルのためのチュートリアル-
チュートリアルのススメ -チュートリアルのためのチュートリアル-チュートリアルのススメ -チュートリアルのためのチュートリアル-
チュートリアルのススメ -チュートリアルのためのチュートリアル-Hironobu Fujiyoshi
 
最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)
最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)
最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)Nguyen Tuan
 
K-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周りK-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周りYusuke Uchida
 
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...Gou Koutaki
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスYusuke Uchida
 

En vedette (10)

スマートフォンのアクセス解析のありがちなこと
スマートフォンのアクセス解析のありがちなことスマートフォンのアクセス解析のありがちなこと
スマートフォンのアクセス解析のありがちなこと
 
CV勉強会@関東 3巻3章4節 画像表現
CV勉強会@関東 3巻3章4節 画像表現CV勉強会@関東 3巻3章4節 画像表現
CV勉強会@関東 3巻3章4節 画像表現
 
Inside-Outカメラからの3次元Scan Pathとシーン構造の復元
Inside-Outカメラからの3次元Scan Pathとシーン構造の復元Inside-Outカメラからの3次元Scan Pathとシーン構造の復元
Inside-Outカメラからの3次元Scan Pathとシーン構造の復元
 
VIEW2013 Binarycode-based Object Recognition
VIEW2013 Binarycode-based Object RecognitionVIEW2013 Binarycode-based Object Recognition
VIEW2013 Binarycode-based Object Recognition
 
チュートリアルのススメ -チュートリアルのためのチュートリアル-
チュートリアルのススメ -チュートリアルのためのチュートリアル-チュートリアルのススメ -チュートリアルのためのチュートリアル-
チュートリアルのススメ -チュートリアルのためのチュートリアル-
 
最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)
最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)
最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)
 
K-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周りK-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周り
 
Random Forests
Random ForestsRandom Forests
Random Forests
 
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティス
 

Similaire à Developer tools表示しておけばネトゲやってても仕事してる感でる

ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみたゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた秀和 福永
 
めんどくさい…から始める効率化のススメ
めんどくさい…から始める効率化のススメめんどくさい…から始める効率化のススメ
めんどくさい…から始める効率化のススメChikako Mori
 
20161126_Blender step2
20161126_Blender step220161126_Blender step2
20161126_Blender step2naotaro0123
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-nishio
 
20170722_Dragonboardで買い物メモ
20170722_Dragonboardで買い物メモ20170722_Dragonboardで買い物メモ
20170722_Dragonboardで買い物メモKenzo Nagahisa
 
コンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おうコンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おうYu Tamura
 
ペアプログラミング ホントのところ
ペアプログラミング ホントのところペアプログラミング ホントのところ
ペアプログラミング ホントのところTakuto Wada
 
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summerEmergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summerTakuto Wada
 
20120324 ABC2012S Android開発者とデザイナーの効率的な連携に利く話
20120324 ABC2012S Android開発者とデザイナーの効率的な連携に利く話20120324 ABC2012S Android開発者とデザイナーの効率的な連携に利く話
20120324 ABC2012S Android開発者とデザイナーの効率的な連携に利く話youten (ようてん)
 
Nintendo labo esp32
Nintendo labo esp32Nintendo labo esp32
Nintendo labo esp32nbihibashi
 
システム開発は何故揉めるのか
システム開発は何故揉めるのかシステム開発は何故揉めるのか
システム開発は何故揉めるのかechigoya-jp
 
Weekend Androidのススメ
Weekend AndroidのススメWeekend Androidのススメ
Weekend AndroidのススメSuzuki Junko
 
楽しいゲーム開発管理
楽しいゲーム開発管理楽しいゲーム開発管理
楽しいゲーム開発管理Maki Koiwa
 
Tddのすゝめ
TddのすゝめTddのすゝめ
Tddのすゝめ将 高野
 
Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩kiita312
 
Live2Dのモデリング~モーションづけ
Live2Dのモデリング~モーションづけLive2Dのモデリング~モーションづけ
Live2Dのモデリング~モーションづけnaotaro0123
 
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)natsu_bm
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方Yusuke Wada
 
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウみくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウtorisoup
 

Similaire à Developer tools表示しておけばネトゲやってても仕事してる感でる (20)

ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみたゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた
 
めんどくさい…から始める効率化のススメ
めんどくさい…から始める効率化のススメめんどくさい…から始める効率化のススメ
めんどくさい…から始める効率化のススメ
 
Webya110114a
Webya110114aWebya110114a
Webya110114a
 
20161126_Blender step2
20161126_Blender step220161126_Blender step2
20161126_Blender step2
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
 
20170722_Dragonboardで買い物メモ
20170722_Dragonboardで買い物メモ20170722_Dragonboardで買い物メモ
20170722_Dragonboardで買い物メモ
 
コンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おうコンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おう
 
ペアプログラミング ホントのところ
ペアプログラミング ホントのところペアプログラミング ホントのところ
ペアプログラミング ホントのところ
 
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summerEmergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summer
 
20120324 ABC2012S Android開発者とデザイナーの効率的な連携に利く話
20120324 ABC2012S Android開発者とデザイナーの効率的な連携に利く話20120324 ABC2012S Android開発者とデザイナーの効率的な連携に利く話
20120324 ABC2012S Android開発者とデザイナーの効率的な連携に利く話
 
Nintendo labo esp32
Nintendo labo esp32Nintendo labo esp32
Nintendo labo esp32
 
システム開発は何故揉めるのか
システム開発は何故揉めるのかシステム開発は何故揉めるのか
システム開発は何故揉めるのか
 
Weekend Androidのススメ
Weekend AndroidのススメWeekend Androidのススメ
Weekend Androidのススメ
 
楽しいゲーム開発管理
楽しいゲーム開発管理楽しいゲーム開発管理
楽しいゲーム開発管理
 
Tddのすゝめ
TddのすゝめTddのすゝめ
Tddのすゝめ
 
Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩
 
Live2Dのモデリング~モーションづけ
Live2Dのモデリング~モーションづけLive2Dのモデリング~モーションづけ
Live2Dのモデリング~モーションづけ
 
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウみくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
 

Developer tools表示しておけばネトゲやってても仕事してる感でる