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

GopherCon 2019 Report Talk

GopherCon 2019 Report Talk

#gopherdojo で話したGopherCon 2019報告会での発表です

Kazuki Higashiguchi
PRO

August 26, 2019
Tweet

More Decks by Kazuki Higashiguchi

Other Decks in Technology

Transcript

  1. © - BASE, Inc. X
    GopherCon 報告会
    . “On the Road to Go ”
    . Recommendation to Lightning Talk Speaker
    #gopherdojo
    . . - @hgsgtk
    Kazuki Higashiguchi

    View Slide

  2. © - BASE, Inc.
    Agenda
    “On the Road to Go ” by Russ Cox
    GopherCon
    Recommendation to Lightning Talk Speaker

    View Slide

  3. © - BASE, Inc.
    : @hgsgtk
    Who am I?
    東⼝ 和暉 ( Higashiguchi Kazuki )
    BASE BANK, Inc. (BASE, Inc.)
    業務としてGopherCon に
    参加

    View Slide

  4. © - BASE, Inc.
    Agenda
    “On the Road to Go ” by Russ Cox
    GopherCon
    Recommendation to Lightning Talk Speaker

    View Slide

  5. © - BASE, Inc.
    GopherCon
    • 毎年⾏われるアメリカのサンディエゴで
    ⾏われたGoの世界最⼤のカンファレン

    • https://www.gophercon.com

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. © - BASE, Inc.
    GopherCon
    • DAY Pre-Conference Workshop
    • DAY Sessions & Welcome Party
    • DAY Sessions
    • DAY LT / Community Day

    View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. © - BASE, Inc.
    Session情報
    • Liveblog (sourcegraph)
    • https://about.sourcegraph.com/go/
    • Talk slide
    • https://github.com/gophercon/
    -talks

    View Slide

  14. © - BASE, Inc.
    聴講したSession
    • On the Road to Go
    • How Uber "Go"es
    • Portable, Immediate Mode GUI Programs for Mobile and Desktop
    in % Go
    • Go, pls stop breaking my editor
    • Handling Go Errors
    • Optimization for Number of goroutines Using Feedback Control
    • Contributing to the os Package: How Deep Do You Go?
    • The Athens Project - A Proxy Server for Go Modules
    • Generics in Go
    • You Can't Go Your Own Way: The Standardization of Go at GitHub
    • Small is Going Big: Go on Microcontrollers

    View Slide

  15. © - BASE, Inc.
    聴講したSession
    • On the Road to Go
    • How Uber "Go"es
    • Portable, Immediate Mode GUI Programs for Mobile and Desktop
    in % Go
    • Go, pls stop breaking my editor
    • Handling Go Errors
    • Optimization for Number of goroutines Using Feedback Control
    • Contributing to the os Package: How Deep Do You Go?
    • The Athens Project - A Proxy Server for Go Modules
    • Generics in Go
    • You Can't Go Your Own Way: The Standardization of Go at GitHub
    • Small is Going Big: Go on Microcontrollers

    View Slide

  16. © - BASE, Inc.
    Agenda
    “On the Road to Go ” by Russ Cox
    GopherCon
    Recommendation to Lightning Talk Speaker

    View Slide

  17. © - BASE, Inc.
    “On the Road to Go ”

    View Slide

  18. View Slide

  19. © - BASE, Inc.
    Live Blog
    https://about.sourcegraph.com/go/gophercon- -on-the-road-to-go-

    View Slide

  20. © - BASE, Inc.
    https://blog.golang.org/experiment

    View Slide

  21. © - BASE, Inc.
    概要
    • Go⾔語開発の考え⽅
    • Experiment/Simplify/Ship
    • Go
    • Error Handling
    • Generics
    • Dependencies Management
    • Go tools

    View Slide

  22. © - BASE, Inc.
    Go初期の開発ループ
    • 2つのステージ
    • experimentから学び、
    simplifyする
    https://blog.golang.org/experiment

    View Slide

  23. © - BASE, Inc.
    Simplifyのための4つのR
    .Reshaping
    .Redefining
    .Removing
    .Restricting

    View Slide

  24. © - BASE, Inc.
    Rs
    Reshaping 再形成 Redefine 再定義
    https://blog.golang.org/experiment
    Removing 削除 Restricting 制約
    • 有⽤性 or 重要性が低いものを
    削除
    • ソースファイル UTF-
    • gofmt

    View Slide

  25. © - BASE, Inc.
    Go開発ループ
    • Ship(Goコードの出
    荷)の追加
    • ユーザーが試せるよう

    https://blog.golang.org/experiment

    View Slide

  26. © - BASE, Inc.
    Go
    • Error Handling
    • Generics
    • Dependencies Management
    • Go tools

    View Slide

  27. © - BASE, Inc.
    Error Value History
    - 2008年 syscall errorはint型で定義
    - `errno int `
    - 2008年 ↑の2時間後error typeが⽣まれる
    - type Error struct、Print()‧String()という2つのシグネ
    チャを持っていた
    - 2009年 Error interface
    - Print()が取り除かれ現在の形へ
    - pkg/errorsなどError experimentsが⾊々
    - experimentの結果が溜まってくる

    View Slide

  28. © - BASE, Inc.
    Go Error Handling
    • Error Value Handling
    • Unwrap interface
    • errors.Is
    • errors.As
    • Error syntax
    • check? try? (abandoned)

    View Slide

  29. © - BASE, Inc.
    Unwrap interface
    https://blog.golang.org/experiment
    • Optional なinterface
    • くるんだcontext內部のエラーを返す

    View Slide

  30. © - BASE, Inc.
    errors.Is
    https://blog.golang.org/experiment

    View Slide

  31. © - BASE, Inc.
    errors.As
    https://blog.golang.org/experiment

    View Slide

  32. © - BASE, Inc.
    try/check
    • proposal “check”
    • proposal “try”
    • https://go.googlesource.com/
    proposal/+/master/design/ -
    try-builtin.md
    • abandoned.

    View Slide

  33. © - BASE, Inc.
    Generics
    https://speakerdeck.com/linyows/learn-about-generics-again

    View Slide

  34. © - BASE, Inc.
    https://blog.golang.org/why-generics

    View Slide

  35. © - BASE, Inc.
    Dependencies Management
    https://gopherdojo.connpass.com/event/ /

    View Slide

  36. © - BASE, Inc.
    Go Tools
    • gopls(“go, please”)
    • https://github.com/golang/go/wiki/
    gopls
    • LSPの実装

    View Slide

  37. © - BASE, Inc.
    Agenda
    “On the Road to Go ” by Russ Cox
    GopherCon
    Recommendation to Lightning Talk Speaker

    View Slide

  38. https://speakerdeck.com/hgsgtk/building-api-server-side-architecture-for-beginners

    View Slide

  39. © - BASE, Inc.
    GopherConでLTはデキる
    • !「英語話せないしな…」
    • !「USAだから⾼度な内容がいるので
    は…」

    View Slide

  40. © - BASE, Inc.
    Blog GopherCon に参加、海外カンファレンスで
    LT登壇した経験を振り返る
    https://devblog.thebase.in/entry/ / / /

    View Slide

  41. © - BASE, Inc.
    Next LT speaker!

    View Slide

  42. © - BASE, Inc.
    聴講したSession⾃分的分類分け
    • Go⾔語⾃体
    • On the Road to Go
    • Go, pls stop breaking my editor
    • Generics in Go
    • Microservice‧⼤規模開発
    • How Uber “Go"es
    • You Can't Go Your Own Way: The Standardization of Go at GitHub
    • Web以外の利⽤
    • Portable, Immediate Mode GUI Programs for Mobile and
    Desktop in % Go
    • Small is Going Big: Go on Microcontrollers
    • (※ 量が多いのでさらにピックアップしてます)

    View Slide

  43. © - BASE, Inc.
    国内カンファレンスとの感覚的な違い
    • 規模が⼤きい(会場‧設備)
    • ⾔語Committerや原著の著者が参加し
    てたりする
    • twitterしてる⼈が少ない。交流、アイ
    デアや境遇の交換に重点

    View Slide