たのしくみんなのWifi速度を収集する、しかもJSで!
by
tan-t
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
たのしくみんなのWifi速度を 収集する、しかもJSで! 株式会社DELTA 丹哲郎
Slide 2
Slide 2 text
主にインフラ領域の技術支援サービスやってます!
Slide 3
Slide 3 text
私は代表です! 2日ぶり人生2回目のLTです!よろしくお願いします!
Slide 4
Slide 4 text
(ところで)会場あります!@シブヤ
Slide 5
Slide 5 text
最近オフィスのWifiが遅い!(らしい)
Slide 6
Slide 6 text
こういうのは各自が好き勝手言うからファクトが欲しい 電子レンジ? 接続台数? 上りが遅い? 時間帯?
Slide 7
Slide 7 text
アーキテクチャ(妄想) 端末 データレイク 端末 端末 端末 グラフ化など インサイト
Slide 8
Slide 8 text
極端に遅いことの検知はクライアントでやりたい 端末 データレイク 端末 端末 端末 グラフ化など インサイト 低速になった時点で通信が不安定にな るので、「遅くなった」ことは クライアントが検知してほしい
Slide 9
Slide 9 text
でも各自のOSはバラバラ
Slide 10
Slide 10 text
Chrome拡張にしてバックグラウンド実行させてみよう でもNW速度をキャプチャできるAPIなんてあるの?
Slide 11
Slide 11 text
navigator.connection
Slide 12
Slide 12 text
でもなんか数値が小さい・・・?
Slide 13
Slide 13 text
丸めた値らしい(fingerprinting対策とのこと) https://stackoverflow.com/questions/5529718/how-to-detect-internet-speed-in-javascript/47511842#47511842
Slide 14
Slide 14 text
「遅いこと」がわかればOK
Slide 15
Slide 15 text
遅いときには通信しづらいので、復帰時にまとめて送付 実装はどうすればいいのかな? ● 定期的にチェック ● 遅くなったら低速モードに ● 高速に戻った時点でレポートを投げる ● チェック間隔は高速時と低速時で変えたいかも、、、?
Slide 16
Slide 16 text
setIntervalだと等間隔すぎる件 高速時が9割で、低速時にはこまめにチェックしたいという場合にsetIntervalだとどちら に合わせるか難しい
Slide 17
Slide 17 text
「さっきまで低速だった」という状態も管理したい 関数の外に状態を置いて更新したくないですよね、、、
Slide 18
Slide 18 text
setTimeoutと再起でシンプルに書けるかも?
Slide 19
Slide 19 text
setTimeoutと再起でシンプルに書けるかも? 状態 遅い間はどんどん積み重なる 速くなったらリセット catch-allなループ
Slide 20
Slide 20 text
setTimeoutと再起でシンプルに書けるかも? Exponential backoff 基本は30秒ごとにサンプリング
Slide 21
Slide 21 text
setTimeoutと再起でシンプルに書けるかも? いま遅い 遅かった それ以外
Slide 22
Slide 22 text
(今後の課題)テスタビリティは低そう これは外から渡したほうが良さそう ここはSpyする? これも外から渡したほうが良さそう?
Slide 23
Slide 23 text
[CM]AWSコストの無料診断やってます!
Slide 24
Slide 24 text
[CM]AWSコストの無料診断やってます! https://costcut.cloud
Slide 25
Slide 25 text
ありがとうございました!