#gopherdojo で話したGopherCon 2019報告会での発表です
© - BASE, Inc. XGopherCon 報告会. “On the Road to Go ”. Recommendation to Lightning Talk Speaker#gopherdojo. . - @hgsgtkKazuki Higashiguchi
View Slide
© - BASE, Inc.Agenda“On the Road to Go ” by Russ CoxGopherConRecommendation to Lightning Talk Speaker
© - BASE, Inc.: @hgsgtkWho am I?東⼝ 和暉 ( Higashiguchi Kazuki )BASE BANK, Inc. (BASE, Inc.)業務としてGopherCon に参加
© - BASE, Inc.GopherCon• 毎年⾏われるアメリカのサンディエゴで⾏われたGoの世界最⼤のカンファレンス• https://www.gophercon.com
© - BASE, Inc.GopherCon• DAY Pre-Conference Workshop• DAY Sessions & Welcome Party• DAY Sessions• DAY LT / Community Day
© - BASE, Inc.Session情報• Liveblog (sourcegraph)• https://about.sourcegraph.com/go/• Talk slide• https://github.com/gophercon/-talks
© - BASE, Inc.聴講したSession• On the Road to Go• How Uber "Go"es• Portable, Immediate Mode GUI Programs for Mobile and Desktopin % 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
© - BASE, Inc.“On the Road to Go ”
© - BASE, Inc.Live Bloghttps://about.sourcegraph.com/go/gophercon- -on-the-road-to-go-
© - BASE, Inc.https://blog.golang.org/experiment
© - BASE, Inc.概要• Go⾔語開発の考え⽅• Experiment/Simplify/Ship• Go• Error Handling• Generics• Dependencies Management• Go tools
© - BASE, Inc.Go初期の開発ループ• 2つのステージ• experimentから学び、simplifyするhttps://blog.golang.org/experiment
© - BASE, Inc.Simplifyのための4つのR.Reshaping.Redefining.Removing.Restricting
© - BASE, Inc.RsReshaping 再形成 Redefine 再定義https://blog.golang.org/experimentRemoving 削除 Restricting 制約• 有⽤性 or 重要性が低いものを削除• ソースファイル UTF-• gofmt
© - BASE, Inc.Go開発ループ• Ship(Goコードの出荷)の追加• ユーザーが試せるようにhttps://blog.golang.org/experiment
© - BASE, Inc.Go• Error Handling• Generics• Dependencies Management• Go tools
© - 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の結果が溜まってくる
© - BASE, Inc.Go Error Handling• Error Value Handling• Unwrap interface• errors.Is• errors.As• Error syntax• check? try? (abandoned)
© - BASE, Inc.Unwrap interfacehttps://blog.golang.org/experiment• Optional なinterface• くるんだcontext內部のエラーを返す
© - BASE, Inc.errors.Ishttps://blog.golang.org/experiment
© - BASE, Inc.errors.Ashttps://blog.golang.org/experiment
© - BASE, Inc.try/check• proposal “check”• proposal “try”• https://go.googlesource.com/proposal/+/master/design/ -try-builtin.md• abandoned.
© - BASE, Inc.Genericshttps://speakerdeck.com/linyows/learn-about-generics-again
© - BASE, Inc.https://blog.golang.org/why-generics
© - BASE, Inc.Dependencies Managementhttps://gopherdojo.connpass.com/event/ /
© - BASE, Inc.Go Tools• gopls(“go, please”)• https://github.com/golang/go/wiki/gopls• LSPの実装
https://speakerdeck.com/hgsgtk/building-api-server-side-architecture-for-beginners
© - BASE, Inc.GopherConでLTはデキる• !「英語話せないしな…」• !「USAだから⾼度な内容がいるのでは…」
© - BASE, Inc.Blog GopherCon に参加、海外カンファレンスでLT登壇した経験を振り返るhttps://devblog.thebase.in/entry/ / / /
© - BASE, Inc.Next LT speaker!
© - 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 andDesktop in % Go• Small is Going Big: Go on Microcontrollers• (※ 量が多いのでさらにピックアップしてます)
© - BASE, Inc.国内カンファレンスとの感覚的な違い• 規模が⼤きい(会場‧設備)• ⾔語Committerや原著の著者が参加してたりする• twitterしてる⼈が少ない。交流、アイデアや境遇の交換に重点