Rabbit Slide Show

SPAデバッグ入門

2016-06-19

Description

主にSPAを対象としたWebアプリケーションのデバッグについてFirefoxの開発ツールを例に紹介

Text

Page: 1

SPAデバッグ入門
Masafumi Yokoyama
勉強会@ Sinatra 札幌
2016-06-19
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 2

さいきんのおしごと
Firefox
AngularJS
Rails
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 3

SPAデバッグ入門
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 4

SPAとは
Single Page Application
ページ遷移なし
AjaxやWebSocketなどを使って通信
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 5

デバッグとは
バグを見つける
直す
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 6

デバッグとは
バグを見つける
直す
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 7

バグを見つける
デバッグツール
事例
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 8

バグを見つける
デバッグツール
事例
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 9

デバッグツール
Firefox/Google Chrome標準
添付
F12で出てくるやつ
標準添付のツールが充実してきたの
で、Live HTTP Headersや
HttpFox、Firebugなどは不要になっ
てきている
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 10

デバッグツール
Firefoxの開発ツールを例にいく
つか紹介
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 11

開発ツール
インスペクタ
Webコンソール
ネットワークモニタ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 12

開発ツール
インスペクタ
Webコンソール
ネットワークモニタ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 13

インスペクタ
要素を調査
DOMを調べる
要素(element)があるか
属性(attribute)があるか
https://developer.mozilla.org/ja/docs/Tools/
Page_Inspector
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 14

要素
<a href="..."></a>
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 15

属性
href="..."
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 16

要素を調査
デモ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 17

開発ツール
インスペクタ
Webコンソール
ネットワークモニタ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 18

Webコンソール
JavaScriptなどのログを記録
console.log
JavaScriptのコードを実行して
Webページと対話
https://developer.mozilla.org/ja/docs/Tools/
Web_Console
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 19

Webコンソール
デモ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 20

開発ツール
インスペクタ
Webコンソール
ネットワークモニタ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 21

ネットワークモニタ
ネットワークリクエストの詳細
を表示
HTTPステータス
リクエスト/レスポンス
https://developer.mozilla.org/ja/docs/Tools/
Network_Monitor
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 22

ネットワークモニタ
デモ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 23

WebSocketモニタ
WebSocket接続のやり取りのモ
ニタリングはアドオンで可能
WebSocket Monitor
https://addons.mozilla.org/en-US/firefox/addon/
websocket-monitor/
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 24

バグを見つける
デバッグツール
事例
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 25

事例
かいはつしゃはそうしんボタン
をおした
しかしなにもおこらなかった
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 26

:-O
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 27

切り分ける
どこでエラーになっているか
クライアント
サーバー
ネットワーク
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 28

そうび
ネットワークモニタ
Webコンソール
サーバーのログ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 29

かいはつしゃはネットワーク
モニタをつかった
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 30

かいはつしゃはネットワーク
モニタをつかった
リクエストは未送信だった
エラーが返ってきていた
送信したまま返ってきていなか
った
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 31

かいはつしゃはネットワーク
モニタをつかった
リクエストは未送信だった
エラーが返ってきていた
送信したまま返ってきていなか
った
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 32

リクエストは未送信だった
クライアントでエラーが起きて
いる
Webコンソールを使って調査
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 33

かいはつしゃはWebコンソ
ールをつかった
JavaScriptにログを仕込む
Webコンソールにログが出る
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 34

かいはつしゃはネットワーク
モニタをつかった
リクエストは未送信だった
エラーが返ってきていた
送信したまま返ってきていなか
った
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 35

エラーが返ってきていた
ステータスコードを見る
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 36

ステータスコードを見る
400番台ならクライアントが悪
そう
リクエストパラメータを確認
サーバーのログを見る
500番台ならサーバーが悪そう
サーバーのログを見る
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 37

かいはつしゃはネットワーク
モニタをつかった
リクエストは未送信だった
エラーが返ってきていた
送信したまま返ってきていなか
った
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 38

送信したまま返ってきていな
かった
ネットワーク不調の可能性
WiFi有効になってる?
ping通る?
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 39

おまけ
法人向けFirefoxサポートで得た
知見
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 40

おまけ
DOM Inspector
ブラウザツールボックス
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 41

DOM Inspector
Firefox本体のUIのDOMを見れ
る
メニュー
タブ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 42

DOM Inspector
デモ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 43

ブラウザツールボックス
ブラウザ上で発生したすべての
通信を一覧できる
すべてのタブ
アドオン
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 44

ブラウザツールボックス
用途の例: バックグラウンドで
余計な通信が発生していないか
の確認
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 45

ブラウザツールボックス
デモ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Page: 46

まとめ
標準ツールが充実
クライアントかサーバーかネッ
トワークか切り分けよ
SPAデバッグ入門
Powered by Rabbit 2.2.0

Other slides