CAグループ限定GO勉強会

こんにちわ。CAリワード開発部の小高です。

先日、CAリワードが主催するCyberAgentグループ限定のGo勉強会を実施しました。

今回は、その時の熱気に満ちた会場の様子と、LT内容についてリポートしたいと思います。

タイムテーブル

時間 内容
19:00 - 19:05 挨拶
19:05 - 19:20 AbemaTVにおけるGo
19:20 - 19:35 Go言語とDockerでAIバトル基盤を書いたら便利だった話
19:35 - 19:50 GAE/Goのススメ
19:50 - 20:00 休憩
20:00 - 20:15 10年物のレガシーPHPをGoにリプレイスしている話
20:15 - 20:30 クリラボにGo導入している話
20:30 - 20:45 優秀な若手に狂奔するオッサン劇場 〜生き残りをかけて臨んだGoの道〜
20:45 - 21:00 Goトラップ 〜中級者向けGo言語でよく引っかかる同期処理など周りの問題、分析と解決方法〜
- 21:30 懇親会

勉強会の様子

それでは早速覗いてみましょう。どん!

f:id:kotakotaking:20160701014147j:plain

Go勉強会!!!

勉強する意気込みがひしひしと伝わってきます。

Goを扱う猛者たちは今か今かと目を光らせ会場入りしてきます。

そんな中、Gopher君はいつもと変わらずゆる〜い感じで迎えてくれます。グッジョブGopher

今回はCAグループ限定という事もあり、「事前予約なし、会場にきてね!」という謳い。

ここはGopher君が発する一言に模すなら「事前予約なし、会場にGoGo」だろ!と思う人も居たとか居ないとか。

そして、勉強会の時間がやってきたのですが・・・

なんと!当初の想定を大きく上回る100人以上のエンジニアが集まり、グループ内でもGoに対する関心が高い事が伺えました。

はい、その時の写真どん!!!

f:id:kotakotaking:20160701015233j:plain

おーーーーーっ!

「Goをやってる」「興味がある」というエンジニアがグループ内でもこんなにいたんだ!とワクワクしてきます。

と、同時に、ワタクシも気分が高揚してまいりました。

そう!何を隠そう、今日はワタクシもスピーカーとして登壇する予定なのであります。

高揚しない訳がありません。

そして、、、いよいよ始まりました!Go勉強会

其の1(GoでつくるAbemaTV)

初めに登壇いただいたいのは、AbemaTVの開発エンジニア「西尾」さん

AbemaTVと言えば、皆さんご存知「無料でテレビ番組が見れるインターネットテレビ局」

そんな注目のプロダクトを1から開発してきた西尾さんに登壇いただきました。

f:id:kotakotaking:20160701022153j:plain

日々のトラフィックをストレスなく捌く事はもちろんの事、

今後を見据え、柔軟にシステム拡張できるよう設計してるのはさすがの一言でした。

個人的に気になったのは、「外部ライブラリを使用する時には挙動を把握しましょう」という事。

内部のシステムをいかにしっかり作っても、外部ライブラリで思わぬPanicを発生させたりするものが結構あるそうです。

また、使っているライブラリ自体がそうでなくても、ライブラリが外部依存しているものだと、

ライブラリ自体は問題なくても、依存ライブラリがPanicを起こしたりなども多々あるそうで、

内製以外のライブラリを使用する際にはソースレベルで事前確認し、起こりえる症状をハンドルしないと危険だなと思いました。

其の2(Go言語とDockerでAIバトル基盤を書いたら便利だった話)

入社2年目にして堂々としたスピーチをしたのはアプリボットの「向井」さん

f:id:kotakotaking:20160701024322j:plain

リッチなUI部分のみCocos2d-xを使い、それ以外はほぼGolangで書いたという「ボンバー猛者」

GoにAIの要素を盛り込み、4人対決のとあるゲームを作った話をしてくれました。

デモンストレーションが始まったと同時に、昔なつかしBGMが流れてきて会場が笑いの渦に包まれます笑

AIはアドテクスタジオも注目している分野なので、

4プレイヤー全てが独立したAIで、どのように学習していくのかとても興味が湧きました。

其の3(GAE/Goのススメ)

GAEについて登壇していただいたのは、同じアドテクスタジオに所属するLodeoの「池田」さん。

f:id:kotakotaking:20160701024435j:plain

GAEとは、GoogleAppEnginenの略で、GoogleCloudで提供されるサービスの1つ。

みなさん耳にした事がある人もいるでしょう、SaaS(サーズ)ですね。

現在、GAEはJavaPHP、Pyrhon、Goをサポートしています(Standard Editionの場合)

動画元年という言葉が出たのも記憶に新しいですが、

SGAを活用しての動画生成サーバの話は未体験領域なだけに興味深かったですね。

其の4(10年物のレガシーPHPをGoにリプレイスしている話)

同じCAリワードに所属するスーパーエンジニアのDaichiです。

f:id:kotakotaking:20160701024507j:plain

今回、彼は弊社のコアとなるシステムのGo化を推し進めている一人で、

現行のレガシーPHPをGoにリプレイスした際の進め方や設計方針などをスピーチしてくれました。

進行がとても上手で、しっかりと詰まった内容の中にも会場をホットにさせる笑いのトークがあり、

聞いている側はすっかり心を持っていかれてしまいました笑

其の5(クリラボにGo導入している話)

アドテクスタジオ iXam Creative Lab. に所属する「水沼」さんによる、インフィード広告でGoを採用した話。

f:id:kotakotaking:20160701024535j:plain

元々Javaベースで開発していたものが一段落し、技術チャレンジとしてGoを取り入れたようです。

エンジニアもJava使いが殆どという中、敢えてGoでの開発に挑んだスピリッツ。素晴らしい!

チームとしてGoを習得するための取り組みで毎週Goの勉強会を実施したり、

「Go養成ギプス」と称した静的コード解析ツールを導入するなど、

これからGoに移行していく企業にとっては、チームの技術力底上げという観点で非常にためになる内容だったと思います。

其の6(優秀な若手に狂奔するオッサン劇場 〜生き残りをかけて臨んだGoの道〜)

はい。ワタクシ「小高」です。

f:id:kotakotaking:20160701025212j:plain

PHPをメインとして主に管理画面の開発を行ってきましたが、このたびGoで配信システムの開発を行いました。

今までフロントからバッチまでPHP一辺倒で書き倒す事が多かったですが、

どうしてもバッチなどパフォーマンスが重要視される分野においては限界を感じていました。

優秀な若手に突き上げられながら、脱PHP → Goへの転身を果たし、配信サービスを作り切った話を発表させていただきました。

其の7(Goトラップ 〜中級者向けGo言語でよく引っかかる同期処理など周りの問題、分析と解決方法〜)

最後はAmeba技術本部の「Mario」さんが登壇

f:id:kotakotaking:20160701025251j:plain

goroutineによるコードの間違いを会場の人達に当ててもらうという、他のスピーカーとは異なるアプローチで臨んでくれました。

唯一の会場参加型で、問題のあるコードがどこか、みんなスクリーンに目を凝らして探しているのが印象的でした。

goroutineで陥りやすい罠など、図解で説明していただきとても分かりやすかったです。

勉強会を終えて

私自身、何度か社外のGo勉強会に参加させていただきましたが、

今回の勉強会は参加者も多く内容も充実しており、まずは成功といったところではないでしょうか。

もちろん課題はありますが、このような取り組みをこれだけの規模で実施したのは初だったので、

良いも悪いも次に繋がるよい財産になったと思います。

今後、「Goと言えばCAリワード」と言われるよう、社外にもアプローチしていこうと思いますので、その際はみなさん足をお運びくださいね。

http://techblog.ca-reward.co.jp/techblog/2016/07/post-38.htmltechblog.ca-reward.co.jp