Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Goサーバサイドあるある

cpp0302
November 22, 2018

 Goサーバサイドあるある

and factory beer bash #5 エンジニアあるあるLT 〜 サーバーサイドエンジニア編
https://andfactory.connpass.com/event/106362/
で発表した資料です。
Go言語を半年間使って思ったことを発表しました。

cpp0302

November 22, 2018
Tweet

More Decks by cpp0302

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ   ໊લɿ੉ށ හจ  ॴଐɿBOEGBDUPSZגࣜձࣾ  ৬छɿαʔόαΠυΤϯδχΞ 

    ΞϓϦͷόοΫΤϯυ  ࣾ಺޲͚γεςϜͷߏங  ࠷ۙ࢖͍ͬͯΔݴޠ  /PEFKTɿ೥  1)1ɿϲ݄  (Pݴޠɿϲ݄ (JU)VCɿDQQ 2JJUBɿDQQ 5XJUUFSɿ!DQQ@
  2. ΤϥʔϋϯυϦϯά͕໘౗   USZʙDBUDIͷΑ͏ͳߏ଄͸ଘࡏ͠ͳ͍  ؔ਺ͷ໭Γ஋ͰFSSPSΛฦ͢  ݺͼग़͠ݩͰ൑ఆͯ͠ॲཧ func ReadConfig()

    error { buf, err := ioutil.ReadFile(filePath) if err != nil { //  err  return err } … return nil } func XXX() error { if err := AAA(); err != nil { log.Printf(": %+v¥n", err) return err } if err := BBB(); err != nil { log.Printf(": %+v¥n", err) return err } _, err := CCC() if err != nil { log.Printf(": %+v¥n", err) return err } if err := DDD(); err != nil { log.Printf(": %+v¥n", err) return err } return nil }
  3. Τϥʔͷ࢓༷͕γϯϓϧ͗͢Δ   Τϥʔͷఆٛ type error interface { Error() string

    } func main() { buf, err := ioutil.ReadFile("abc.txt") if err != nil { fmt.Printf(" " : %s¥n", err) return } … }  "   $ go run main.go  " : open abc.txt: no such file or directory !  
  4. Τϥʔ͕ى͖ͨ৔ॴΛ஌Γ͍ͨ   HJUIVCDPNQLHFSSPST  8JUI4UBDL func main() { buf,

    err := ioutil.ReadFile("abc.txt") if err != nil { fmt.Printf(": %s¥n", err) return } … } $ go run main.go : open abc.txt: no such file or directory
  5. Τϥʔ͕ى͖ͨ৔ॴΛ஌Γ͍ͨ  func main() { buf, err := ioutil.ReadFile("abc.txt") if

    err != nil { fmt.Printf(": %+v¥n", errors.WithStack(err)) return } … } $ go run main.go : open abc.txt: no such file or directory main.main /Users/seto/go/src/github.com/andfactory/test/test_errors.go:13 runtime.main /usr/local/Cellar/go/1.11.2/libexec/src/runtime/proc.go:201 …  HJUIVCDPNQLHFSSPST  8JUI4UBDL