├── .gitignore ├── README.md ├── firebase.json └── public ├── DeNA_logo_RGB.png ├── Progate_logo1.png ├── StevenBuss053.jpg ├── crash.academy.png ├── favicon.ico ├── google_developers.png ├── index.html ├── logo_MD.png ├── mercari_logo_corporate.png └── wantedly_logo.png /.gitignore: -------------------------------------------------------------------------------- 1 | .firebaserc 2 | .firebase/ 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 2018-Autumn 2 | Go Conference 2018 Autumn 3 | -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "public": "public", 4 | "ignore": [ 5 | "firebase.json", 6 | "**/.*", 7 | "**/node_modules/**" 8 | ] 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /public/DeNA_logo_RGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoCon/2018-Autumn/8641d57a57449b04694a5d1c97daa107327737e6/public/DeNA_logo_RGB.png -------------------------------------------------------------------------------- /public/Progate_logo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoCon/2018-Autumn/8641d57a57449b04694a5d1c97daa107327737e6/public/Progate_logo1.png -------------------------------------------------------------------------------- /public/StevenBuss053.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoCon/2018-Autumn/8641d57a57449b04694a5d1c97daa107327737e6/public/StevenBuss053.jpg -------------------------------------------------------------------------------- /public/crash.academy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoCon/2018-Autumn/8641d57a57449b04694a5d1c97daa107327737e6/public/crash.academy.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoCon/2018-Autumn/8641d57a57449b04694a5d1c97daa107327737e6/public/favicon.ico -------------------------------------------------------------------------------- /public/google_developers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoCon/2018-Autumn/8641d57a57449b04694a5d1c97daa107327737e6/public/google_developers.png -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 13 | 14 | 15 | Go Conference 2018 Autumn 16 | 28 | 29 | 30 |

Go Conference 2018 Autumn

31 |

32 | Conference of programming language Go in Tokyo. 33 |

34 | 35 | 36 | 37 | 38 |
DateVenue
2018/11/25 (Sun)Google Tokyo office 27F
Roppongi Hills Mori Tower, 6-10-1 Roppongi, Minato-ku, Tokyo, Japan
39 | 40 |

Keynote Speaker

41 |

Steven Buss

42 | Steven Buss 43 |

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

52 | 53 |

Registration

54 |

55 | Attendees can register on the connpass page. 56 |

57 | 58 |

Schedule

59 | 65 | 66 |

Scholarship Program

67 |

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

71 | 72 | 76 | 77 |

Time Table

78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 |
TimeRoom ARoom BRoom CCafe
09:30 -Open--
10:00 - 10:10Opening Talk--
10:10 - 11:00Keynote--
11:00 - 11:10Break--
11:10 - 11:30S1Handson
by Progate(JP/EN)
-
11:30 - 11:50S2-
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:20S3--
17:20 - 17:30Break
17:30 - 17:35-Open After Party
17:35 - 17:55-S4
17:55 - 18:10-LT x 2
18:10 - 18:40-Close After Party
18:40 - 19:00Close
106 | 107 |

Talks

108 | 109 |

[S1] Microservices実装ガイド in Go at Mercari

110 |

Session Information

111 | 112 | 113 | 114 |
LanguageSpeakerSession Type
Japanese@yagi5(株式会社メルカリ)Sponsor Session
115 |

Summary

116 |

メルカリでは、モノリシックなAPIをMicroservicesとしてGoで作り直すことを選択しました。 117 | これからGoでMicroservicesを作っていくチームや会社のために、ライブラリやアーキテクチャ、チーム構成などについても紹介します。

118 | 119 |

[S2] よくあるJava IT企業で新規プロジェクトをGoで立ち上げてみてる話

120 |

Session Information

121 | 122 | 123 | 124 |
LanguageSpeakerSession Type
Japanese武田 洋平(株式会社メディアドゥ)Sponsor Session
125 |

Summary

126 |

goでプロダクトを作りたい!と思う方は昨今たくさんいると思いますが、実際に会社で導入するとなると色々ハードルが高いところもあるのではないでしょうか。 127 | 弊社もそんな会社の一つでしたが、なんとかgo導入に踏み切りました。その過程を、泥臭いような話も含めて紹介したいと思います。

128 | 129 |

[S3] Pains and gains of architecting microservices on local dev environment

130 |

Session Information

131 | 132 | 133 | 134 |
LanguageSpeakerSession Type
Japanese@creasty, @izumin5210(ウォンテッドリー株式会社)Sponsor Session
135 |

Summary

136 |

Wantedly では解決する課題に応じた最適な技術選定をするために、機能毎に小さくサービスが分けられ、Golang, Ruby,Python, Rust, Node.jsなど多様な言語が使われています。この様な状況においては、増大する開発の複雑さに立ち向かい、「気持ちよく」開発を継続できる環境が重要となります。
137 | 本セッションでは「言語が異なることによる開発環境構築の複雑化」と「複数サービス間通信時のサービスディスカバリ」の2つの問題に焦点を当て、ローカル環境での開発体験をいかに向上させたかについてお話します。

138 | 139 |

[S4] 大規模ウェブサービスにおけるコードレビュー観点

140 |

Session Information

141 | 142 | 143 | 144 |
LanguageSpeakerSession Type
Japanese井本 裕(株式会社ディー・エヌ・エー)Sponsor Session
145 |

Summary

146 |

DeNA では Google App Engine Standard Environment (GAE SE) を用い、マイクロサービスとして大規模なトラフィックをさばくウェブサービスを開発・運用しています。 GAE SE は強力なPaaSですが、1インスタンスあたりのメモリ使用量が限られるという制約もあります。本発表では、GAE SE 上で高ハイパフォーマンスを実現するために、日々開発現場で用いているメモリ最適化手法を中心に、コードレビュー観点をご紹介します。

147 | 148 |

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

149 |

Session Information

150 | 151 | 152 | 153 |
LanguageSpeakerSession Type
JapanesemunisystemShort Session
154 |

Summary

155 |

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

160 | 161 |

[A2(S)] Profiling Go Application

162 |

Session Information

163 | 164 | 165 | 166 |
LanguageSpeakerSession Type
JapaneseorisanoShort Session
167 |

Summary

168 |

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

171 | 172 |

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

173 |

Session Information

174 | 175 | 176 | 177 |
LanguageSpeakerSession Type
JapaneseYoshiki ShibukawaLong Session
178 |

Summary

179 |

Describe Biscuit's source code

180 | 181 |

[A4(S)] Consider pluggable CLI tool implementation

182 |

Session Information

183 | 184 | 185 | 186 |
LanguageSpeakerSession Type
Japaneseizumin5210Short Session
187 |

Summary

188 |

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

193 | 194 |

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

195 |

Session Information

196 | 197 | 198 | 199 |
LanguageSpeakerSession Type
JapanesemonochromeganeShort Session
200 |

Summary

201 |

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

207 | 208 |

[A6(L)] Practical Go Concurrency Design Patterns

209 |

Session Information

210 | 211 | 212 | 213 |
LanguageSpeakerSession Type
Japanese (partially English)moriyoshiLong Session
214 |

Summary

215 |

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

216 | 217 |

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

218 |

Session Information

219 | 220 | 221 | 222 |
LanguageSpeakerSession Type
Japaneseチェシャ猫Short Session
223 |

Summary

224 |

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

225 | 226 |

[B1(S)] Becoming the voice of Go

227 |

Session Information

228 | 229 | 230 | 231 |
LanguageSpeakerSession Type
Japanese and EnglishAngela FunkShort Session
232 |

Summary

233 |

234 | 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.
235 | 236 | 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. 237 |

238 | 239 |

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

240 |

Session Information

241 | 242 | 243 | 244 |
LanguageSpeakerSession Type
EnglishhuydxShort Session
245 |

Summary

246 |

Write your own database like playing lego

247 | 248 |

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

249 |

Session Information

250 | 251 | 252 | 253 |
LanguageSpeakerSession Type
JapaneseDaisuke MakiLong Session
254 |

Summary

255 |

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

258 | 259 |

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

260 |

Session Information

261 | 262 | 263 | 264 |
LanguageSpeakerSession Type
EnglishachikuShort Session
265 |

Summary

266 |

267 | 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. 268 |

269 | 270 |

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

271 |

Session Information

272 | 273 | 274 | 275 |
LanguageSpeakerSession Type
JapanesetakochuuShort Session
276 |

Summary

277 |

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

278 | 279 |

[B6(L)] API Testing the Hard Way

280 |

Session Information

281 | 282 | 283 | 284 |
LanguageSpeakerSession Type
JapanesetimakinLong Session
285 |

Summary

286 |

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

287 | 288 |

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

289 |

Session Information

290 | 291 | 292 | 293 |
LanguageSpeakerSession Type
JapanesesonatardShort Session
294 |

Summary

295 |

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

296 | 297 |

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

298 |

Session Information

299 | 300 | 301 | 302 |
LanguageSpeakerSession Type
JapaneseKazuki HigashiguchiLightning Talk
303 |

Summary

304 |

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

305 | 306 |

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

307 |

Session Information

308 | 309 | 310 | 311 |
LanguageSpeakerSession Type
JapaneseKazuki HigashiguchiLightning Talk
312 |

Summary

313 |

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

315 | 316 |

Code of Conduct

317 |

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

320 | 321 |

Sponsors

322 | 323 | 324 | 329 | 334 | 339 | 344 | 345 | 346 | 351 | 356 | 361 | 362 |
363 | 364 |

Contact Us

365 |

366 | Feel free contact us via this form. 367 |

368 | 369 |

Disclaimer

370 |

371 | This event is organized by the non-commercial organization, further more, by a few individual volunteers. 372 | We appreciate your understanding that the event quality is totally depending on the support from all the attendees. 373 | 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. 374 |

375 | 384 | 385 |

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

388 | 389 | 390 | -------------------------------------------------------------------------------- /public/logo_MD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoCon/2018-Autumn/8641d57a57449b04694a5d1c97daa107327737e6/public/logo_MD.png -------------------------------------------------------------------------------- /public/mercari_logo_corporate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoCon/2018-Autumn/8641d57a57449b04694a5d1c97daa107327737e6/public/mercari_logo_corporate.png -------------------------------------------------------------------------------- /public/wantedly_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoCon/2018-Autumn/8641d57a57449b04694a5d1c97daa107327737e6/public/wantedly_logo.png --------------------------------------------------------------------------------