Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vue.js-Nuxt.jsのグローバルエラーハンドリング実装.pdf
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Norimitsu Yamashita
October 10, 2019
Programming
1
4.6k
Vue.js-Nuxt.jsのグローバルエラーハンドリング実装.pdf
Norimitsu Yamashita
October 10, 2019
Tweet
Share
More Decks by Norimitsu Yamashita
See All by Norimitsu Yamashita
セキュアに実装するLINEログイン
nori3tsu
0
35
LINE開発基盤を利用した ビジネス特化型高速アプリ開発
nori3tsu
1
330
Hasuraの本番運用に向けて
nori3tsu
0
1.6k
LINE Developer Community忘年LT大会 2022 - LINE Developers News 振り返り
nori3tsu
0
280
LIFF・LINEミニアプリでApple Pay決済
nori3tsu
0
800
AWS Cloud Native イベント向けLINEボット
nori3tsu
1
400
AWSとLINE Bot Server
nori3tsu
0
640
Nuxt.jsで作るLINEボット
nori3tsu
1
790
Other Decks in Programming
See All in Programming
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
500
dchart: charts from deck markup
ajstarks
3
1k
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
110
AI & Enginnering
codelynx
0
120
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
620
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
630
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
800
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
260
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
WCS-LA-2024
lcolladotor
0
450
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
We Are The Robots
honzajavorek
0
170
BBQ
matthewcrist
89
10k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
Ruling the World: When Life Gets Gamed
codingconduct
0
150
Transcript
Copyright ©2019 Grandream Inc. All Rights Reserved. Meguro.es # 23
@ Wantedly, Inc. Vue.js / Nuxt.js の グローバルエラーハンドリング実装
- 2 - Copyright ©2019 Grandream Inc. All Rights Reserved.
⾃⼰紹介 @nori3tsu ⼭下 徳光 / Norimitsu Yamashita ⽬⿊⻄⼝にある 株式会社グランドリーム という会社をやってます。 SPA/PWA+AWSサーバーレスを活⽤したアプリ開発が得意です。 最近は、クライアント/サーバーのコードにTypeScriptを使ってい ます。 norimitsu.yamashita nori3tsu
- 3 - Copyright ©2019 Grandream Inc. All Rights Reserved.
1, メソッド定義のエラーハンドリングの課題 2, 課題1の解決⽅法 – カスタムエラークラス 4, 課題2の解決⽅法 – グローバルエラーハンドリング 5, Vue.js / Nuxt.js に組み込む 6, まとめ
- 4 - Copyright ©2019 Grandream Inc. All Rights Reserved.
1, メソッド定義のエラーハンドリングの課題
- 5 - Copyright ©2019 Grandream Inc. All Rights Reserved.
1, メソッド定義のエラーハンドリングの課題 メソッド内に定義されたエラーハンドリング:
- 6 - Copyright ©2019 Grandream Inc. All Rights Reserved.
1, メソッド定義のエラーハンドリングの課題 課題1: エラー判定処理が散らばる マジックナンバー、可読性が悪い
- 7 - Copyright ©2019 Grandream Inc. All Rights Reserved.
1, メソッド定義のエラーハンドリングの課題 課題2: エラーハンドリング後の処理が散らばる 様々な場所に同じ業務処理があると、 コードの変更に弱くなる。
- 8 - Copyright ©2019 Grandream Inc. All Rights Reserved.
1, メソッド定義のエラーハンドリングの課題 • 課題1: エラー判定処理が散らばる • -> カスタムエラークラスの作成 • 課題2: エラーハンドリング後の処理が散らばる • -> グローバルエラーハンドリング
- 9 - Copyright ©2019 Grandream Inc. All Rights Reserved.
1, メソッド定義のエラーハンドリングの課題 Before: メソッド内に定義されたエラーハンドリングが…
- 10 - Copyright ©2019 Grandream Inc. All Rights Reserved.
1, メソッド定義のエラーハンドリングの課題 After: グローバルエラーハンドリングでスッキリ︕︕
- 11 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装
- 12 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 課題1: エラー判定処理が散らばる
- 13 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 Web API 通信処理を例にとって説明します。
- 14 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 Web API 通信処理で発⽣するエラーは どんなものがあるでしょうか︖ HTTPステータスコード
- 15 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 HTTPステータスコードは、HTTPにおいて Webサーバからのレスポンスの意味を表現す る3桁の数字からなるコードである。 Wikipedia
- 16 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 異常系 HTTPステータスの分類 • クライアントエラー • 400 Bad Request(⼊⼒値不正エラー) • 401 Unauthorized(認証エラー) • 403 Forbidden(アクセス権限エラー) • 404 Not Found(NotFoundエラー) • 409 Conflict(競合エラー)
- 17 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 • サーバーエラー • 500 Internal Server Error(内部システム エラー) • 503 Service Unavailable(サービス利⽤不 可エラー)
- 18 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 Web API 通信処理のカスタムエラークラスの実装 https://github.com/necojackarc/extensible-custom-error
- 19 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 Web API 通信処理のエラー処理を拡張
- 20 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 Before: マジックナンバーの判定処理が…
- 21 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 After: エラークラスの判定に︕
- 22 - Copyright ©2019 Grandream Inc. All Rights Reserved.
3, 課題2の解決⽅法 – グローバルエラーハン ドリング
- 23 - Copyright ©2019 Grandream Inc. All Rights Reserved.
2, 課題1の解決⽅法 – カスタムエラークラスの実装 課題2: エラーハンドリング後の処理が散らばる
- 24 - Copyright ©2019 Grandream Inc. All Rights Reserved.
3, 課題2の解決⽅法 – グローバルエラーハンドリング Vue.js で発⽣するエラーのハンドリング⽅法 1. Vue.js 内で発⽣したエラー • data, computed, methods 等 2. Vue.js 外で発⽣したエラー • インスタンス変数の初期化 等 3. Promise.rejected エラー • ⾮同期処理エラーのキャッチ漏れ
- 25 - Copyright ©2019 Grandream Inc. All Rights Reserved.
3, 課題2の解決⽅法 – グローバルエラーハンドリング 具体的なハンドリング⽅法
- 26 - Copyright ©2019 Grandream Inc. All Rights Reserved.
3, 課題2の解決⽅法 – グローバルエラーハンドリング Vue.jsのグローバルエラーハンドリングとは…︖ Vue.jsで発⽣する 3パターンのエラーを処理する 共通関数処理のこと。
- 27 - Copyright ©2019 Grandream Inc. All Rights Reserved.
3, 課題2の解決⽅法 – グローバルエラーハンドリング エラー処理の共通関数を⽤意して
- 28 - Copyright ©2019 Grandream Inc. All Rights Reserved.
3, 課題2の解決⽅法 – グローバルエラーハンドリング 各種エラーハンドラーで呼び出す = グローバルエラーハンドリング
- 29 - Copyright ©2019 Grandream Inc. All Rights Reserved.
4, Vue.js / Nuxt.js に組み込む
- 30 - Copyright ©2019 Grandream Inc. All Rights Reserved.
4, Vue.js / Nuxt.js に組み込む Vue.js に組み込む:
- 31 - Copyright ©2019 Grandream Inc. All Rights Reserved.
4, Vue.js / Nuxt.js に組み込む Nuxt.jsに組み込む: ~plugins/error-handler.js
- 32 - Copyright ©2019 Grandream Inc. All Rights Reserved.
5, まとめ
- 33 - Copyright ©2019 Grandream Inc. All Rights Reserved.
5, まとめ • グローバルエラーハンドリング • 可読性・メンテナンス性の向上 • Vue.js / Nuxt.js では Plugins を利⽤
- 34 - Copyright ©2019 Grandream Inc. All Rights Reserved.
さいごに… • ⼀緒に働いてくれるエンジニア仲間 • 下記の技術を使ったお仕事 • TypeScript • Vue.js / Nuxt.js • SPA / PWA / BFF / API • AWSサーバーレス ⼤募集中︕︕
- 35 - Copyright ©2019 Grandream Inc. All Rights Reserved.
ご清聴 ありがとうございました 開発のご相談はHPまで︕