subtitle : 2017/4/28 オプト社内勉強会
allotted-time : 15m
渋谷 充宏 @m4buya
- なんでも屋
- サーバーサイドプログラマだった
- Ruby / Scala
- https://github.com/mshibuya
- RailsAdmin/CarrierWave committer
- なんか握りつぶしやがってる!
- エラー表示を見てユーザが「そう言われても…」みたいな気持ちになる
- 怒られが発生してはじめてエラーに気付く
システムにおけるランタイムエラーをどう扱ったらいいかについて、心構えを持っておきたい
- ランタイム時でないエラー
- コンパイルエラーなど
- がんばって直せ!!!
javaでいうと
- FileNotFoundException
- IOException
- IndexOutOfBoundsException
- NullPointerException
- SQLException
- ...
- 「誰かがやりたかったことを達成できなかった」こと!
- 「なんとかできる人」が適切に状況を知れること
- 「誰のせいなのか」によってなんとかできる人は変わる
- データベースのクエリエラー
- ディスクの空き容量不足によるファイル作成失敗
- サーバサイドアプリケーションなら?クライアントアプリケーションなら?
- 存在しないIDの項目を表示しようとした
- 外部サービスのネットワークのタイムアウト
- ログに吐かれるから大丈夫でしょ?
- ログなんて誰も見ません!!!
- まぁ気付くは気付くので、一歩前進
- 大規模な障害時にメールボックスが埋まる
- 未読133545通みたいな
- 「些細だけどなかなかつぶせないエラー」に重大なエラーが埋もれてしまう
- Sentry
- airbrake
- errbit
- エラーとは「誰かがやりたかった何か」の達成に失敗したこと
- 達成のためになにかできる人にきちんと知らせる必要がある
- そのために適切なエラー収集の方法を確立しよう!