Goのエラーハンドリングについてちょっとだけ思ったメモ
だめ1
if err := foo(); err != nil { return err } // どこがやねん、ってなる
だめ2
if err := foo(); err != nil { return fmt.Errorf("failed to do foo") } // なんでやねん、ってなる
すき
if err := foo(); err != nil { return fmt.Errorf("failed to do foo: %v", err) } // なにが、なんで失敗したかあとで知りやすい気がするよ
DRY