Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

© - 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

Slide 15

Slide 15 text

© - 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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

© - BASE, Inc. Go開発ループ • Ship(Goコードの出 荷)の追加 • ユーザーが試せるよう に https://blog.golang.org/experiment

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

© - 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の結果が溜まってくる

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

© - BASE, Inc. Next LT speaker!

Slide 42

Slide 42 text

© - 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 • (※ 量が多いのでさらにピックアップしてます)

Slide 43

Slide 43 text

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