Go Conference 2018 Spring
åºæ¬æ å ±
- æ¥æ
- ã
- éå¬åœ¢åŒ
- çŸå°éå¬
- äŒå Ž
- ãµã€ããŠãºæ ªåŒäŒç€Ÿ æ±äº¬ãªãã£ã¹
ã€ãã³ãå 容
ãéèŠãå ¥é€šæ¹æ³ã«ã€ããŠã¯ã¡ãŒã«ã«ãŠãæ¡å æžã¿ã§ãã
ã¹ã±ãžã¥ãŒã« / Time Schedule
| æé | ã«ãŒã 1ïŒRoom 1ïŒ | ã«ãŒã 2ïŒRoom 2ïŒ |
|---|---|---|
| 09:30 - | äŒå ŽïŒOpenïŒ | |
| 10:00 - 10:10 | ãªãŒããã³ã°ïŒOpening TalkïŒ | |
| 10:10 - 11:00 | ããŒããŒãïŒKeynoteïŒ | |
| 11:00 - 11:10 | äŒæ©ïŒBreakïŒ | äŒæ©ïŒBreakïŒ |
| 11:00 - 11:50 | â ã¹ãã³ãµãŒã»ãã·ã§ã³ïŒSuponsor SessionsïŒ ã»ãµã€ããŠãºæ ªåŒäŒç€Ÿ æ§ïŒCybozu, Inc.ïŒ ã»æ ªåŒäŒç€Ÿã¡ã«ã«ãª æ§ïŒMercari, Inc.ïŒ | |
| 11:50 - 13:20 | æŒäŒæ©ïŒLunch BreakïŒ | æŒäŒæ©ïŒLunch BreakïŒ |
| 13:20 - 14:05 | â ã»ãã·ã§ã³x2ïŒ2 SessionsïŒ ã»grapi: Building JSON API server with grpc-gateway for microservices by izumin5210 ã»Golangã§å®è£ ããFTPãããã·ãµãŒã by å±±äž å圊(@pyama86) | â ã»ãã·ã§ã³x2ïŒ2 SessionsïŒ ã»How to write Go code by kaneshin ã» GoãããAPIãæ±ããæ è·¯ by lestrrat |
| 14:05 - 14:15 | äŒæ©ïŒBreakïŒ | äŒæ©ïŒBreakïŒ |
| 14:15 - 15:00 | â ã»ãã·ã§ã³x2ïŒ2 SessionsïŒ ã»çµã¿èŸŒã¿Linuxã§ã®Golangã®ã¹ã¹ã¡ by tetsu_koba ã»Linuxã®ãŠãŒã¶ãŒã©ã³ããinitããå šãŠãŸãããšgolangã§æžã by tetsu_koba | â ã»ãã·ã§ã³x2ïŒ2 SessionsïŒ ã»ã³ãŒããžã§ãã¬ãŒããšã®ä»ãåãæ¹ by pei0804 ã»Gormã®æ°æã¡ã«ãªã£ãŠGormã䜿ã by linyows |
| 15:00 - 15:10 | äŒæ©ïŒBreakïŒ | äŒæ©ïŒBreakïŒ |
| 15:10 - 15:55 | â ã»ãã·ã§ã³x2ïŒ2 SessionsïŒ ã»Goroutine meets a signal by codehex ã»Dgraph - A high performance graph database written in pure Go by munisystem | â ã»ãã·ã§ã³ x 1ïŒ1 SessionïŒ ã»Performance Optimization on Google AppEngine by timakin |
| 15:55 - 16:10 | äŒæ©ïŒBreakïŒ | äŒæ©ïŒBreakïŒ |
| 16:10 - 16:45 | LT倧äŒïŒLightning TalksïŒ ã»WhitespaceèšèªåŠçç³»ãGoã§å®è£ ããŠã¿ã by snowcrush ã»ã¯ããŒã©ãŒå®è£ ã§åŠã¶go by å·éš åä¹ ã»go-selfupdate-github ã§ããŒã«ããèªå·±ã¢ããããŒããã§ããããã«ãã by ããã° ã»åŠççã®GoConãéå¬ãããïŒ by Yamashou ã»Goã§å§ããdockerãšcontainerd by sakajunquality ã»Replaced Backlog Git Server from Perl to Go by Yuichi Watanabe | |
| 16:45 - 16:50 | äŒæ©ïŒBreakïŒ | äŒæ©ïŒBreakïŒ |
| 16:50 - 17:00 | ã¯ããŒãžã³ã°ïŒClosing TalkïŒ | |
| 17:00 - 18:00 | å®å šæ€åïŒCloseïŒ | å®å šæ€åïŒCloseïŒ |
ããŒããŒã / Keynote
How the Go runtime implements maps efficiently (without generics)
çºè¡šè ïŒ Dave Cheney
ã¹ãã³ãµãŒã»ãã·ã§ã³ / Suponsor's Sessions
Go at Cybozu
çºè¡šè ïŒãµã€ããŠãºæ ªåŒäŒç€Ÿ ymmtæ§
Testing with microservices in merpay
çºè¡šè ïŒæ ªåŒäŒç€Ÿã¡ã«ã«ãª kazegusuriæ§
ã¡ã«ãã€ã§ã¯å€éšãµãŒãã¹ãè€æ°ã®ãã€ã¯ããµãŒãã¹ãçµã¿åãããŠãªã¯ãšã¹ããåŠçããŠããŸããåã·ã¹ãã ãšã©ã®ããã«æ¥ç¶ãã©ã®ããã«ãã¹ããè¡ã£ãŠããã玹ä»ããŸãã
Unit and E2E Test, Mocking and Fake Implementation, Fault Injection, Conformance Test
éåžžã»ãã·ã§ã³ / Normal Sessions
GoãããAPIãæ±ããæ è·¯
çºè¡šè ïŒlestrrat
å ·äœäŸãã¿ãã€ã€ãããã€ãéžæè¢ããããªãã§ããGoã£ãœãã³ãŒããæžãããšããæµãã説æããŸã
How to write Go code
çºè¡šè ïŒ kaneshin
Goåå¿è ã®æ¹ãGoã®ã³ãŒããããã±ãŒãžãããã¥ã¡ã³ããªã©æšæºãçšæããŠãããªãœãŒã¹ãæå€§éã«å©çšããæ¹æ³ãã話ããŸãã
Performance Optimization on Google AppEngine
çºè¡šè ïŒtimakin
GAEã§ã®APIã®ããã©ãŒãã³ã¹æé©åã§ãå®éã«è¡ã£ãäŸã玹ä»ããŸãã
Goroutine meets a signal
çºè¡šè ïŒcodehex
çãã㯠goroutine ã«ã·ã°ãã«ãéä¿¡ããããšæã£ãããšã¯ãããŸãããïŒ
...ã¯ãããããŸãããïŒ
Golet (https://github.com/Code-Hex/golet) ãšãã *.go ãå°ããªã¹ãŒããŒãã€ã¶ãŒãã©ããšããŠæ±ãããããªã©ã€ãã©ãªãäœæããŸããã
Golet ã䜿ã£ã Go ã®ããã°ã©ã ãžã·ã°ãã«ãéä¿¡ãããæãããã管çããŠããããã»ã¹ãš goroutine ãžã·ã°ãã«ã®æ å ±ãéãããšãã§ããŸãã
ããã§ãããã»ã¹ã¯ãã¡ãããgoroutine ãžã·ã°ãã«ã®éç¥ãããããã®æ©æ§ãã©ã®ããã«ããŠéçºããã®ãã話ããŸãã
çµã¿èŸŒã¿Linuxã§ã®Golangã®ã¹ã¹ã¡
çºè¡šè ïŒtetsu_koba
ã©ãºãã€ã®ãããªããŒãã§ã»ã³ãµãŒããã€ã¹ãšãããã¯ãŒã¯ã«ã€ãªãããããªæ©åšãäœããšãã«ãCèšèªã§ããªãPythonã§ããªãGolangã䜿ããšããã€ã¹ã¢ã¯ã»ã¹ããWebAPIã®ã¢ã¯ã»ã¹ãŸã§çµ±äžçã«ã§ããã®ã§ã¯ãã©ããŸããšãã話ã
Linuxã®ãŠãŒã¶ãŒã©ã³ããinitããå šãŠãŸãããšgolangã§æžã
çºè¡šè ïŒtetsu_koba
golangã§äœãããã¹ã¿ãã£ãã¯ãªã³ã¯ãããå®è¡ãã¡ã€ã«ã¯å¿ èŠãªã©ã€ãã©ãªãå«ãã§ããã®ã§ãOSãšã®äŸåæ§ãäœããªã£ãŠããŸããããäžæ©èžã¿èŸŒãã§ãããšäœã远å ãããå®å šã«golangã ãã§åãããããã«ãªãã§ãããããå ·äœçã«ãLinuxã®ãŠãŒã¶ãŒã©ã³ããinitããå šãŠãŸãããšgolangã§æžãã«ã¯ã©ãããã°ã§ãããããgokrazy ãšãããããžã§ã¯ãã顿ã«ããŠããã£ãŠãããŸãã
ã³ãŒããžã§ãã¬ãŒããšã®ä»ãåãæ¹
çºè¡šè ïŒpei0804
ã³ãŒããžã§ãã¬ãŒãã¯çç£æ§ãåçã«äžããçŽ æŽããããã®ã«èŠããŸãããã ãäœ¿ãæ¹ãééãããšãäœèšã«å·¥æ°ãå¢ããããšããããŸããç§ã®å€±æçµéšãä»ãã£ãŠããããšã亀ããŠãä»ãåãæ¹ã«ã€ããŠã®è©±ãããŸãã
grapi: Building JSON API server with grpc-gateway for microservices
çºè¡šè ïŒizumin5210
ãã€ã¯ããµãŒãã¹ãª JSON API ã®å®è£ èšèªã«çã£å ã«éžæè¢ãšããŠæããããïŒïŒïŒã®ãïŒã¿ããªå€§å¥œã Golang ã§ãïŒãïŒå®éã«æžããŠã¿ããš
data, err := ioutil.ReadAll(req.Body) if err != nil { http.Error(w, err.Error(), http.InternalStatusInternalServerError) return } book := &Book{} err = json.Unmarshal(data, book) if err != nil { http.Error(w, err.Error(), http.InternalStatusInternalServerError) return } // ããããæ¬åœã«ããããåŠç
ã«ä»£è¡šããã倿§ãªããã©ããããïŒãAPI ããã¥ã¡ã³ãããªãããæ¯åèããªããšãããªãããã§ãæžãã®ããã©ããããåé¡ãªã©ïŒãããããªå£ã«ã¶ã¡ããããŸãïŒ
æ¬ã»ãã·ã§ã³ã§ã¯ïŒãããã®åé¡ã«ç«ã¡åããããã«å°å ¥ãã gRPC + grpc-gateway ãšããæ§æãšïŒãã®èæ¯ïŒããã³ãããªãéçºå¹çåã®ããã«å®è£ ãã grapi ãšãã CLI å Œ grpc-gateway wrapper ã©ã€ãã©ãªãå©çšãããµãŒãã¹éçºã«ã€ããŠç޹ä»ããŸãïŒ
Dgraph - A high performance graph database written in pure Go
çºè¡šè ïŒmunisystem
Go ã§æžããããã€ããã©ãŒãã³ã¹ãªåæ£ã°ã©ãããŒã¿ããŒã¹ Dgraph ã«ã€ããŠããããã¯ã·ã§ã³ã®äºäŸãšãã«ã©ã®ããã«ããŠãã€ããã©ãŒãã³ã¹ãå®çŸããŠããã®ã玹ä»èŽããŸãã
äœæ
ä»ã®ã°ã©ãããŒã¿ããŒã¹ã§ã¯ãªãDgraphãªã®ããå°å
¥ããèæ¯ãšãã®çç±ãã¢ãŒããã¯ãã£ãå
ã«è§£èª¬ããŸãã
Gormã®æ°æã¡ã«ãªã£ãŠGormã䜿ã
çºè¡šè ïŒlinyows
ORMã®Gormã䜿ãäžã§ã¢ã³ããã¿ãŒã³ã瀺ããäžã§ãã¹ããã©ã¯ãã£ã¹ãå®éã®ã³ãŒããéããŠã玹ä»ããŸã
Golangã§å®è£ ããFTPãããã·ãµãŒã
çºè¡šè ïŒå±±äž å圊(@pyama86)
話ãæã¯ãGolangãå©çšããŠãFTPãããã·ãµãŒããéçºããŠããŸãããã®éã«èµ·ãã£ãåé¡ããGolangã«ãããè€æ°ãœã±ãããæ±ãéã®ãã¯ããã¯ã玹ä»ããŸãã
LT / Lightning Talks
- WhitespaceèšèªåŠçç³»ãGoã§å®è£ ããŠã¿ã by snowcrush
- ã¯ããŒã©ãŒå®è£ ã§åŠã¶go by å·éš åä¹
- go-selfupdate-github ã§ããŒã«ããèªå·±ã¢ããããŒããã§ããããã«ãã by ããã°
- åŠççã®GoConãéå¬ãããïŒ by Yamashou
- Goã§å§ããdockerãšcontainerd by sakajunquality
- Replaced Backlog Git Server from Perl to Go by Yuichi Watanabe
äŒå Ž / Venue
æ±äº¬éœäžå€®åºæ¥æ¬æ©2-7-1 æ±äº¬æ¥æ¬æ©ã¿ã¯ãŒ
ãµã€ããŠãºæ ªåŒäŒç€Ÿ
Tokyo Nihonbashi Tower, 2-7-1, Nihonbashi, Chuo-ku, Tokyo, Japan
Cybozu, Inc.
å ¥å Žæ¹æ³
å¥éãã¡ãŒã«ã«ãŠãç¥ããããŸãã
æèŠªäŒ
éå¶ã§ã¯æèŠªäŒãéå¬ããäºå®ã¯ãããŸããã éè¯ã§ã®éå¬ã¯æè¿ããããŸãã
åå è æ ã«ã€ããŠ
- äžè¬åå ïŒå çïŒïŒæ®éã®åå è ã§ãå çé ã§æ±ºãŸããŸã
- äžè¬åå ïŒæœéžïŒïŒæ®éã®åå è ã§ãæœéžã§æ±ºãŸããŸã
- é æ¹æ ïŒå çïŒïŒé æ¹ã®æ¹å°çšã®æ ã§ã
- ã¹ã¿ããæ ïŒåœæ¥ãŸã§äœãããã®ãæäŒããããŠããããŸã
- Devquizæ ïŒæœéžã§æ±ºãŸããŸãããç³èŸŒã¿æã®Devquizã«æ£è§£ããæ¹ã®ã¿åœéžããå¯èœæ§ãããæ ã§ãã詳现ã¯Devquizæ ã®æ¬ã埡芧ãã ããã
â»åå è 倿°ã®å Žåãã»ãã·ã§ã³ã®åå ç¶æ³ã«ãã£ãŠã¯ç«ã¡èŠã«ãªãå¯èœæ§ããããŸã
3/31ã«ã¯äžæŠåéãçµäºããŸãããæœéžæ ã®æœéžçµäºåŸã«å床ãªãŒãã³ããäºå®ã§ãã
ãªããã£ã³ã»ã«ã¯æ§ããŸãããããã¡ããšãã£ã³ã»ã«åŠçããé¡ãèŽããŸããç¡æãã£ã³ã»ã«ã®æ¹ã¯æ¬¡å以éåªå é äœãäžããããŠããããããããŸããã
é æ¹æ ã¯ãæ°å¹¹ç·ãé£è¡æ©ã䜿ããªããšæ¥ããªãæ¹ã åãã®åå æ ã§ãã ãã®ããã颿±åãé»è»ã§æ¥ãŠé ããè·é¢ã«ãäœãŸãã®æ¹ã¯ãé æ¹æ ãžã®ç³ã蟌ã¿ã¯ãé æ ®ãã ããã
ã¹ã¿ããæ ã«ãŠåå ããæ¹ã«ã¯ãåœæ¥åä»ãèšå¶ã»çä»ããªã©ããæäŒãããŠé ãäºå®ã§ãã 8æ50åã«äŒå Žã®7Fã«éåãé¡ãããŸãã
Devquizæ
æœéžã§æ±ºãŸããŸãããç³èŸŒã¿æã®Devquizã«æ£è§£ããæ¹ã®ã¿åœéžããå¯èœæ§ãããæ ã§ãã
æªåçãåçãééã£ãŠããå Žåã¯åœéžããŸããã
åé¡
次ã®ããã°ã©ã ãå®è¡ããããšããå Žåã«äœããããŸããïŒ
package main import ( "fmt" ) type Hoge struct{} func (h *Hoge) M() { fmt.Println(h) } func main() { var h *Hoge h.M() }
éžæè¢
1. ã³ã³ãã€ã«ãšã©ãŒ 2. ãããã¯ãçºç 3. <nil>ãšè¡šç€ºããã 4. äœã衚瀺ãããªã
ã¹ãã³ãµãŒ
äŒå Žã¹ãã³ãµãŒ
ãµã€ããŠãºæ ªåŒäŒç€Ÿæ§ã«äŒå Žã®ãæäŸãé ããŠãããŸãã
ã¹ã«ã©ãŒã·ããã¹ãã³ãµãŒ
æ ªåŒäŒç€Ÿã¡ã«ã«ãªæ§ã«åŠçåãã¹ã«ã©ãŒã·ããããæäŸé ããŠãããŸãã
ç¡æãã£ã³ã»ã«ã«ã€ããŠã®å¯Ÿå¿
ååã®éå¬ã®éã«ãç¡æãã£ã³ã»ã«ãè¡ã£ãæ¹ã«ã¯ãåå ã®åªå é äœäžããããŠé ãå¯èœæ§ããããŸããå ·äœçã«ã¯ã以äžã®ããã«ç¡æãã£ã³ã»ã«ãè¡ã£ãæ¹ã察象ãšããããŸãã
- ç³ã蟌ã¿é ãæ©ãã«ãé¢ããããåœæ¥åä»åŠçãè¡ãããªãã£ã
- ãã£ã³ã»ã«ãåœæ¥åä»ãè¡ãããŠããè¡ã£ã
- æèŠªäŒãåœæ¥ç¡æã§æ¬ åžãã
ãã®ãããªåŠçœ®ãããããŸãçç±ãšããŠã¯ãç¡æãã£ã³ã»ã«ã«ãã£ãŠåå ã§ããªãæ¹ãæžãããããšããæå³ããè¡ã£ãŠãããŸãã ååãŸã§ã®GoConã«ãããŠããã€ãã³ãããŒãžã«ãŠ
ãªããã£ã³ã»ã«ã¯æ§ããŸãããããã¡ããšãã£ã³ã»ã«åŠçããé¡ãèŽããŸããç¡æãã£ã³ã»ã«ã®æ¹ã¯æ¬¡å以éåªå
é äœãäžããããŠããããããããŸããã
ãšèšèŒããŠãããŸããã ä»åãå¿åè ã倿°ã«ãªããšèãããããããä»ã®æ¹ãåªå ãããŠããã ãå¯èœæ§ããããŸãã ãªãããã¡ãã®æéãã§ãã£ã³ã»ã«åŠçããããæ¹ã¯å€§å€ãææ°ã§ããïŒ@tenntennãŸã§ãé£çµ¡ãããã ããããšæããŸãã
ãªããæ¬¡å以éãåæ§ã®å¯ŸåŠãããå¯èœæ§ããããŸãã®ã§ãä»ååœæ¥éœåãæªããªã£ãŠæ¥ããªãããšãåãã£ãæ¹ã¯ããææ°ã§ããéããã«ãã£ã³ã»ã«åŠçããé¡ãããŸãã
æ®åœ±ãšã¬ããŒãèšäºã«ã€ããŠ
åœæ¥ã®æ§åãã¬ããŒãèšäºãšããŠWebãµã€ãçã«å ¬éããå¯èœæ§ããããŸãã åœæ¥ã¯ã»ãã·ã§ã³ã®æ§åã®åç»æ®åœ±ãäŒå Žã®æ§åã®åçæ®åœ±ãè¡ãå¯èœæ§ããããŸãã äž»ã«åŸãããã®æ®åœ±ã«ãªããé¡ãæ ãããšã¯ãªãããšæããŸãããæ®åœ±ããããšåé¡ãããå Žåã¯ã@tenntennãŸã§ãç¥ããäžããã
ãã®ä»
- ã¹ã±ãžã¥ãŒã«ãªã©æ¬ããŒãžã®æ²èŒå 容ã¯ç¶æ³ã«ãã倿Žããå ŽåããããŸãã®ã§äºããäºæ¿ãã ããã
- Goã®ãã¹ã³ããã®Gopherã®åäœè ã¯Renee Frenchããã§ãã
- Gopherã®ã€ã©ã¹ãã¯tenntennã«ãããã®ã§ãã
泚æäºé
â» ãã¡ãã®ã€ãã³ãæ å ±ã¯ãå€éšãµã€ãããååŸããæ å ±ãæ²èŒããŠããŸãã
â» æ²èŒã¿ã€ãã³ã°ãæŽæ°é »åºŠã«ãã£ãŠã¯ãæ å ±æäŸå ããŒãžã®å 容ãšå·®ç°ãçºçããŸãã®ã§äºããäºæ¿ãã ããã
â» ææ°æ å ±ã®ç¢ºèªãåå ç³èŸŒæç¶ããã€ãã³ãã«é¢ãããåãåããçã¯æ å ±æäŸå ããŒãžã«ãŠãé¡ãããŸãã

ãåãåãã
- TOP
- ã€ãã³ã
- Go Conference 2018 Spring
