Go Conference 2018 Autumn

Conference of programming language Go in Tokyo.

DateVenue
2018/11/25 (Sun)Google Tokyo office 27F
Roppongi Hills Mori Tower, 6-10-1 Roppongi, Minato-ku, Tokyo, Japan

Keynote Speaker

Steven Buss

Steven Buss

Steven maintains the Go runtime for App Engine Standard, and recently launched a new runtime for Go 1.11 which removes the limitations of the old platform. He's been at Google for two and a half years. He previously worked at a computational genomics startup and at Amazon. He primarily writes C++ and Go at Google, and Python and Go in his free time. You can find him at http://github.com/sbuss.

Registration

Attendees can register on the connpass page.

Schedule

Scholarship Program

Wantedly, Inc. and Meracri, Inc. provide scholarship programs for students. If you live in faraway place from Tokyo, you can apply these scholarship programs.

Time Table

TimeRoom ARoom BRoom CCafe
09:30 -Open--
10:00 - 10:10Opening Talk--
10:10 - 11:00Keynote--
11:00 - 11:10Break--
11:10 - 11:30Sponsor Session 1Handson
by Progate
-
11:30 - 11:50Sponsor Session 2-
11:50 - 13:20Lunch Break
13:20 - 13:40A1(S)B1(S)Handson
by Women Who Go Tokyo
-
13:40 - 14:00A2(S)B2(S)-
14:00 - 14:10Break-
14:10 - 14:50A3(L)B3(L)
14:50 - 15:00Break
15:00 - 15:20A4(S)B4(S)Handson
by golang.tokyo
-
15:20 - 15:40A5(S)B5(S)-
15:40 - 15:50Break-
15:50 - 16:30A6(L)B6(L)-
16:30 - 16:40Break
16:40 - 17:00A7(S)B7(S)--
17:00 - 17:20Sponsor Session 3--
17:20 - 17:30Break
17:30 - 17:35-Open After Party
17:35 - 17:55-Sponsor Session 4
17:55 - 18:10-LT x 2
18:10 - 18:40-Close After Party
18:40 - 19:00Close

Talks

[A1(S)] OpenCensus による APM の実現と、未来

Session Information

LanguageSpeakerSession Type
JapanesemunisystemShort Session

Summary

OpenCensus は Application Performance Management(APM) のためのフレームワークです。 このセッションはまず、ウェブアプリケーションにおける APM の重要性と現状の課題について説明します。 その上で OpenCensus がどのように課題を解決したのか、また OpenCensus による Go のアプリケーションモニタリングの未来について、アーキテクチャやエコシステム、実装例を交えながら解説します。

[A2(S)] Profiling Go Application

Session Information

LanguageSpeakerSession Type
JapaneseorisanoShort Session

Summary

パフォーマンス・チューニングの勉強用に作った画像変換サーバで起きた問題への調査, kubeletのパフォーマンス問題を調査してPRを出した話.

[A3(L)] Reading Source code of Biscuit (GO OS)

Session Information

LanguageSpeakerSession Type
JapaneseYoshiki ShibukawaLong Session

Summary

Describe Biscuit's source code

[A4(S)] Consider pluggable CLI tool implementation

Session Information

LanguageSpeakerSession Type
Japaneseizumin5210Short Session

Summary

自分は gRPC サーバの scaffolding tool / template generator である grapi というツールを開発しています.最近,この grapi の generator 部分を pluggable にしたいという要求が発生し,その設計・実装をしました. 世の中には多種多様な手法で実装された pluggable な CLI が存在します. 本発表では,実装手法の検討時に行った既存ツールの調査と実際に採用した手法の紹介,実装時に意識したことなどについて紹介します.

[A5(S)] フィードバック制御によるGoroutine起動数の最適化

Session Information

LanguageSpeakerSession Type
JapanesemonochromeganeShort Session

Summary

Go言語では、賢いランタイムによって効率的に並行処理が実行されます。 しかしながらアプリケーションごとの最適なGoroutine起動数の決定は依然として開発者の経験と地道なチューニングに依存しています。 そこで本セッションでは、フィードバック制御と呼ばれる仕組みを用いてGoroutineの起動数を動的に調整する手法を検討します。 発表では、フィードバック制御の基礎に触れたのち、Goランタイムの特性を踏まえた制御器の設計を通し、これらを実現するライブラリを開発して紹介します。

[A6(L)] Practical Go Concurrency Design Patterns

Session Information

LanguageSpeakerSession Type
JapanesemoriyoshiLong Session

Summary

Explains the effective usage of channels and sync.* functions.

[A7(S)] 君の並行処理は実行するまでもなく間違っている

Session Information

LanguageSpeakerSession Type
Japaneseチェシャ猫Short Session

Summary

メッセージパッシングによる並行処理は強力で魅力的な機能ですが、同時にバグが発生しやすくかつ発見しづらい部分でもあります。本セッションでは、Go プログラムからその挙動を形式的に記述した振舞い型 (behavioural types) を抽出することで、並行処理に潜むバグを静的に検出する手法について解説します。

[B1(S)] Becoming the voice of Go

Session Information

LanguageSpeakerSession Type
EnglishAngela FunkShort Session

Summary

While the Go community continues to grow year after year, there are a lot of people who struggle using Go. Many find the language not welcoming and geared towards an exclusive group of developers.
In this session, Angela will talk about the importance of writing documentation for your Go code, lessons she’s learned from writing Go documentation, and how spending a little bit of time documenting your Go code can have a huge impact on your career.

[B2(S)] Write your own database like playing lego

Session Information

LanguageSpeakerSession Type
EnglishhuydxShort Session

Summary

Write your own database like playing lego

[B3(L)] Linting, Slicing, and Dicing OpenAPI documents

Session Information

LanguageSpeakerSession Type
JapaneseDaisuke MakiLong Session

Summary

OpenAPI を操るツールはたくさんありますが、自分のユースケースに合わせた変更を行いたい場合に満足いくライブラリレベルでのAPIを提供しているケースは稀です。OpenAPIの仕様を覚えるのと同時に、RESTやProtocol Bufferのデータを自分好みに出力するために必要な様々なAPIを揃えたライブラリを作成したので、その設計思想を含めた紹介をさせていただきます

[B4(S)] Beloved database/sql. How we go test with RDBMS.

Session Information

LanguageSpeakerSession Type
EnglishachikuShort Session

Summary

Many of API servers tend to interact with RDBMS to serve structured data for frontend. Unlike other languages with full-featureed web application frameworks, it seems, at first glance, a little difficult to write tests for Go applications using RDBMS. However, knowing `database/sql` with a bit of RDBMS knowledge is just enough to write clean tests for RDBMS backed Go applications. In this talk, I'll describe how to write efficient RDBMS backed Go application tests.

[B5(S)] 3カ国のクライアントを支えるAPI基盤の構築

Session Information

LanguageSpeakerSession Type
JapanesetakochuuShort Session

Summary

同じリポジトリで3カ国向けにAPIサーバーを提供するナレッジについてお話します。

[B6(L)] API Testing the Hard Way

Session Information

LanguageSpeakerSession Type
JapanesetimakinLong Session

Summary

GoのAPIのテストを書く場合、ユニットテストのようにGo標準のツールで担保できる範囲を超えた共通処理を用意したり、実行環境作りを意識する必要があります。レイヤー化されたアーキテクチャでどこまでモックするか、ユニットテストと統合テストのバランス、無駄だった共通化、使ってみてダメだったツールなど、失敗事例も含めて模索したGoのAPIのテストについて、地道に改善した結果をお話しします。

[B7(S)] Introduce GAE/Go 2nd generation

Session Information

LanguageSpeakerSession Type
JapanesesonatardShort Session

Summary

GAE/Go 1st genと2nd genの比較、移行について、2nd genになったことで改めてGAEの価値の再考

[LT1] 社内初導入のAPIサーバーサイドアーキテクチャ設計戦略

Session Information

LanguageSpeakerSession Type
JapaneseKazuki HigashiguchiLightning Talk

Summary

所属企業にて、Go言語でのAPIをサーバーサイドアーキテクチャの採用・そこまでの進め方について話します。

[LT2] gorealizeで始めるDocker開発環境

Session Information

LanguageSpeakerSession Type
JapaneseKazuki HigashiguchiLightning Talk

Summary

dockerでローカル開発環境を整備する際に毎回dockerをビルドし直すなどをするのは大変開発効率がつらいのですが、gorealizeを利用することでdockerを利用して快適に開発できる環境を作れるようになります。
こちらについて話せればと思っています。

Code of Conduct

We require our attendees and speakers to follow Go Community Code of Conduct.

Sponsors

Contact Us

Feel free contact us via this form.

Disclaimer

This event is organized by the non-commercial organization, further more, by a few individual volunteers. We appreciate your understanding that the event quality is totally depending on the support from all the attendees. Event organizers are also attendees, and to keep their motivation, the event is organized with the minimum effort by the organizers. To be more concrete, here is the list of what the organizers don't provide by themselves.

If you are kind enough to support anything, please let us know via this form.