1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Go Conference 2019 Spring ゆるゆるまとめ

Last updated at Posted at 2019-05-18

はじめに

2019年5月18日に東京で開催される Go Conference 2019 Spring に参加してきました.
https://gocon.jp/
気になった Session に関して,ゆるゆるメモったので,本記事でまとめたいと思います.
間違っている箇所があれば優しくご指摘下さい.

エラー設計について/Designing Errors

Go におけるエラーハンドリングのベストプラクティス紹介

Speaker: morikuni さん
Twitter: inukirom

エラーについて

エラーには 既知のエラー未知のエラー が存在する
未知のエラーを既知のエラーにするのが エラーハンドリング

エラーに求められること

エラーに求められるのは 関係者に処理が失敗した原因を伝える こと
関係者によってエラーに求める情報は異なるので, 関係者ごとに適切な情報を渡そう

  • アプリケーション:エラーの識別情報
  • エンドユーザ:人間が理解可能なメッセージ
  • 運用者:コールスタックやコンテキスト

Go でエラーを扱うベストプラクティス

  • アプリケーション固有のエラーコードを定義しよう
  • 既知の外部のエラーは定義したエラーコードに変換しよう
  • 定義したエラーコードのみを想定してエラーハンドリングをしよう
  • エンドユーザがエラーを解決できる場合はメッセージを追加しよう
  • 必要に応じてコールスタックや引数の情報を追加しよう
  • 未知のエラーが見つかったらハンドリングして既知にしよう

failure について

上記のエラーハンドリングを適切に行うために failure というものを作ったよ
failure を使ったエラーハンドリング方法紹介

failure と xerrors の違い

failure はエラーを 拡張 するイメージ
xerrors はエラーを 変換 していくイメージ

どちらを使うとよいか

  • アプリケーション: failure
  • ライブラリ: xerrors

まとめ

Go Conference 2019 Spring に参加して気になった Session についてまとめました.
まだまだ Go Conference は開催中なので,引き続き気になる Session があれば記事化していきたいと思います.

Qiita には私が聞いた内容をまとめていますが,
会社のブログには,同僚が書いた記事も載っているのでそちらも合わせてご覧下さい.
http://nekojarashi.hatenablog.jp/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?