Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Kaora Shibacaki
PPTX, PDF
2,530 views
クライアント側でつかまえて
http://connpass.com/event/607/ の例外とロギング勉強会のLTスライドです。 しゃべった部分を加筆しましたん
Read more
3
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 46
2
/ 46
3
/ 46
4
/ 46
5
/ 46
6
/ 46
7
/ 46
8
/ 46
9
/ 46
10
/ 46
11
/ 46
12
/ 46
13
/ 46
14
/ 46
15
/ 46
16
/ 46
17
/ 46
18
/ 46
19
/ 46
20
/ 46
21
/ 46
22
/ 46
23
/ 46
24
/ 46
25
/ 46
26
/ 46
27
/ 46
28
/ 46
29
/ 46
30
/ 46
31
/ 46
32
/ 46
33
/ 46
34
/ 46
35
/ 46
36
/ 46
37
/ 46
38
/ 46
39
/ 46
40
/ 46
41
/ 46
42
/ 46
43
/ 46
44
/ 46
45
/ 46
46
/ 46
More Related Content
PDF
super_unkoをスーパーキレイにした
by
jiro4989
PDF
initramfsについて
by
Kazuhiro Nishiyama
PDF
Introduction to Initramfs - Initramfs-tools and Dracut
by
Taisuke Yamada
PPTX
Windowsでも使えるシェル
by
Tetsuya Hasegawa
PPTX
Casperjsのインストール
by
Kohei Misu
PDF
Ruby初級者向けレッスン 45回 ─── 例外
by
higaki
PDF
Ruby初級者向けレッスン 55回 ─── 例外
by
higaki
PDF
dRuby and Security
by
Kazuhiro Nishiyama
super_unkoをスーパーキレイにした
by
jiro4989
initramfsについて
by
Kazuhiro Nishiyama
Introduction to Initramfs - Initramfs-tools and Dracut
by
Taisuke Yamada
Windowsでも使えるシェル
by
Tetsuya Hasegawa
Casperjsのインストール
by
Kohei Misu
Ruby初級者向けレッスン 45回 ─── 例外
by
higaki
Ruby初級者向けレッスン 55回 ─── 例外
by
higaki
dRuby and Security
by
Kazuhiro Nishiyama
What's hot
PDF
CTF for ビギナーズ バイナリ講習資料
by
SECCON Beginners
PDF
シェル芸初心者によるシェル芸入門
by
icchy
PDF
シェル芸初心者によるシェル芸入門 (修正版)
by
icchy
PDF
コンテナイメージの脆弱性スキャンについて
by
YASUKAZU NAGATOMI
PDF
Memory sanitizer
by
MITSUNARI Shigeo
KEY
蜘蛛の巣から抜け出すには?
by
Hayato Tominaga
PDF
やってみた -URL外形監視-
by
Joe_noh
PDF
初級者向けレッスン 51回 ─── 例外
by
higaki
PDF
Kernel fcache-bug
by
MITSUNARI Shigeo
PPTX
Javascript basic code
by
Shinsuke Matsuda
PDF
今から始めるzsh
by
Hideaki Miyake
CTF for ビギナーズ バイナリ講習資料
by
SECCON Beginners
シェル芸初心者によるシェル芸入門
by
icchy
シェル芸初心者によるシェル芸入門 (修正版)
by
icchy
コンテナイメージの脆弱性スキャンについて
by
YASUKAZU NAGATOMI
Memory sanitizer
by
MITSUNARI Shigeo
蜘蛛の巣から抜け出すには?
by
Hayato Tominaga
やってみた -URL外形監視-
by
Joe_noh
初級者向けレッスン 51回 ─── 例外
by
higaki
Kernel fcache-bug
by
MITSUNARI Shigeo
Javascript basic code
by
Shinsuke Matsuda
今から始めるzsh
by
Hideaki Miyake
Viewers also liked
PDF
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
PDF
例外設計における大罪
by
Takuto Wada
PDF
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
PDF
Developing better debug_components
by
Tomoaki Imai
PDF
Pythonとgit hubとベンチャー企業の上手な付き合い方
by
Takahiro Fujiwara
PDF
#yidev 横浜 iPhone 勉強会 - 第16回 オープニング
by
Tomohiro Kumagai
PDF
RESTfulとは
by
星影 月夜
PDF
RESTful Web アプリの設計レビューの話
by
Takuto Wada
PPTX
Javaでマサカリ投げてみた
by
YujiSoftware
PDF
Getting started with Handoff
by
Yuichi Yoshida
PDF
VCSクエスト
by
joker1007
PDF
Rails Development That Doesn't Hurt
by
Akira Matsuda
KEY
100915 HTML5とか勉強会発表資料
by
Yuki Naotori
ODP
Debug Hacks - 第4回つくらぐ勉強会
by
University of Tsukuba Linux User Group
PPTX
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
by
アシアル株式会社
PPTX
Uiテスト@yidev
by
Yusuke Kita
PPTX
「その他」のUI Framework 3選
by
Shumpei Shiraishi
PDF
Github of project
by
Ito Kunihiko
PDF
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
by
Kazuhiro Hara
PDF
Agile Shibuya github_enterprise
by
Koichiro Ohba
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
例外設計における大罪
by
Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
Developing better debug_components
by
Tomoaki Imai
Pythonとgit hubとベンチャー企業の上手な付き合い方
by
Takahiro Fujiwara
#yidev 横浜 iPhone 勉強会 - 第16回 オープニング
by
Tomohiro Kumagai
RESTfulとは
by
星影 月夜
RESTful Web アプリの設計レビューの話
by
Takuto Wada
Javaでマサカリ投げてみた
by
YujiSoftware
Getting started with Handoff
by
Yuichi Yoshida
VCSクエスト
by
joker1007
Rails Development That Doesn't Hurt
by
Akira Matsuda
100915 HTML5とか勉強会発表資料
by
Yuki Naotori
Debug Hacks - 第4回つくらぐ勉強会
by
University of Tsukuba Linux User Group
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
by
アシアル株式会社
Uiテスト@yidev
by
Yusuke Kita
「その他」のUI Framework 3選
by
Shumpei Shiraishi
Github of project
by
Ito Kunihiko
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
by
Kazuhiro Hara
Agile Shibuya github_enterprise
by
Koichiro Ohba
クライアント側でつかまえて
1.
ライ麦畑で捕まえて The Catcher in
the Rye Jerome David Salinger
2.
アント側 クライ麦畑で捕まえて The
Catcher in the Rye Client Jerome David Salinger Kaoru Shibasaki
3.
自己紹介
4.
自己紹介 • とある動画配信サイトでFlashクライアント作っ てます
Kaoru Shibasaki Twitter ID : crexista
5.
NICE CATCH してますか
6.
try {
var hoge:Hoge = new Hoge; hoge.fuga(); ======以下数百行 ===== } catch(e:Error) { // Nice Catch (^ ー *) b }
7.
try {
var hoge:Hoge = new Hoge; hoge.fuga(); ======以下数百行 ===== } catch(e:Error) { // Nice Catch (^ ー *) b }
8.
本当のNICEなキャッチを提案
9.
Necessary Information for
Customer Enjoyment ユーザーが楽しむための情報を キャッチすること
10.
NICE じゃない例
12.
例外のメッセージをそのまま表示するのみ
何が起きたか分からない!
14.
アドレスとかどうすればいいのよ!
てか怖いよ!
16.
普通の人はプロトコルとか分かりません 分からないのにOK押したくない !
17.
『[ネットワーク]で別の名前を指定してください』
だけで良い OK ではなくて 『コントロールパネルを開く』に 押されたらネットワークの設定画面を開いてあげ
18.
原因よりも方法を先に、簡潔に
19.
良いNICE キャッチするにはどうしたら
20.
良いNICE キャッチへの3つの指針 • ユーザーの選択は絶対! •
真実に向かおうとする意思 • 覚悟する者は幸福である
21.
ユーザーの選択は絶対!
22.
1. ユーザーの選択は絶対 ! •
クライアント側はユーザの選択に左右され る • ユーザーの選択が例外を起こす事もある
23.
1. ユーザーの選択は絶対 ! 例)
ローカルに変更情報を保存しようとしたとき ユーザーに保存することを確認
24.
1. ユーザーの選択は絶対 ! 例)
ローカルに変更情報を保存しようとしたとき で、また何かのタイミングで保存
25.
1. ユーザーの選択は絶対 ! 例)
ローカルに変更情報を保存しようとしたとき
26.
1. ユーザーの選択は絶対 !
ユーザーの選択は例外じゃない
27.
1. ユーザーの選択は絶対 • ユーザーに拒否られたらあきらめよ う! •
拒否られた事はもうしない
28.
真実に向かおうとする意思
29.
2. 真実に向かおうとする意思 • クライアント側はユーザーの環境に左右さ れる
• 時計 • 通信 • Etc.. • 起きたエラーの原因を見極める必要がある
30.
2.真実に向かおうとする意思 例) HTTP で外部SWFを読み込んで例外が起きた場合
サーバに置いてあるswfをリクエスト InvalidSWFError バイナリに異常あるときの例外が飛ぶ サーバに置いてあるswf自体がおかしい可能性 通信時に障害がおこった可能性 ユーザーのHDDがおかしい可能性
31.
2.真実に向かおうとする意思 例) HTTP で外部SWFを読み込んで例外が起きた場合
サーバに置いてあるswfをリクエスト InvalidSWFError バイナリに異常あるときの例外が飛ぶ もう一回だけリト ライ
32.
2.真実に向かおうとする意思 例) HTTP で外部SWFを読み込んで例外が起きた場合
サーバに置いてあるswfをリクエスト InvalidSWFError バイナリに異常あるときの例外が飛ぶ それでも失敗した ら?
33.
2.真実に向かおうとする意思 例) HTTP で外部SWFを読み込んで例外が起きた場合 •
他のAPIやpingを打ってみる → 通信をチェック • テストデータをローカルに保存してみる → HDDをチェッ ク • Etc… 2回やってだめだった処理は繰り返さない!
34.
2.真実に向かおうとする意思 private var
retryCount:int = 0; public function tryRequest():void { try { request(); } catch(e:Error) { retryCount++; //マジックナンバー if (retryCount < 5) tryRequest(); } }
35.
2.真実に向かおうとする意思 private var
retryCount:int = 0; public function tryRequest():void { try { request(); } catch(e:Error) { retryCount++; //マジックナンバー if (retryCount < 5) tryRequest(); } }
36.
2.真実に向かおうとする意思
理由のないリトライは サーバーにもクライアントにも負担
37.
闇雲にリトライせずに 原因をチェックする処理へ
38.
覚悟した者は幸福である
39.
3. 覚悟した者は幸福である • クライアント側はシステムに左右される •
時にキャッチできない例外を飛ばす
40.
3. 覚悟したものは幸福である • プレイヤーのVersionが想定より古い
と • 勝手に ↑ なダイアログが出る
41.
3. 覚悟したものは幸福である UIからかけ離れたものが
いきなり出るとユーザーは混乱する
42.
3. 覚悟したものは幸福である ユーザーに覚悟をさせる
43.
3. 覚悟したものは幸福である 違う機構(javascript)で制御してあげる
◯◯は新しくなりました 左のダイアログが出るか ら 「はい」をおしてね
44.
3. 覚悟したものは幸福である UIでラップしたダイアログを出した後
↑ を表示
45.
結論 • 原因じゃなくて対処法を出そう • 難しい文言はつかわない •
リトライは1回まで • ユーザーの設定は例外扱いしない • デフォルトアラートは出さないように • 出す場合は対処法をユーザーに伝えてから
46.
それでは、良いナイスキャッチを! Have
a Nice Catch !
Download