Go Conference 2015 Winterに参加しました

2015/12/6(日)に開催されたGo Conference 2015 Winterに参加してきたので感想レポートを書きました。

「鉄は熱いうちに打て」ということでGoCon終了後、渋谷のカフェにこもって雑に殴り書きしたので、 読みづらかったり誤りがあったりしたらごめんなさい。ご指摘いただけると助かります。

ちなみにLTについては、酔っ払っていてまじめに聞けなかったので感想を省きましたが、 どれも笑いをとっていて酒のツマミには最高のLTばかりでしたということはご報告しておきます。

あと、発表者の方の資料や 当日のtogetterの情報は以下にまとめていただいていてとてもありがたいです。 ありがとうございます。

#gocon 発表者資料一覧 + togetter

発表の感想

x/mobile gaming

gomobileでゲームを作成する過程を、コミットログの差分から順に説明していくスタイルの発表でした。

実際のコードを見せてデモしていくので非常にわかりやすく、英語も聞き取りやすかったです。

gomobileですごい簡単にゲーム作れちゃうんだな〜と思わせるKeynoteでした。

実際はそんなこと無いんだろうけどw

普通にFlappy Gopher面白そうでした。

発表の際に使っていたgitのdiffを表示するツールがめちゃめちゃ便利そうでした。

GoBGP : yet another BGP implementation written in Go!

BGPをgoから操作するGoBGPというツールの紹介でした。

BGPはネットワークのプロトコルで、ググる となんとなくですが、わかるような気がします。

ネットワーク機器は自動化運用について過渡期で、現状自動運用するためにtelnetでexpectでツラいけど、 Whitebox Switch(OSを含むソフトを含まないSwitch)で、cumulus linux, open network linuxなどを入れれば 色々自由度が広がって自動化運用進むよねという話でした。

そして、そんな環境であればGoBGPとか使えれば幸せになれるので、機会があれば どんどん自動化していきましょう的な話でした。

あと、余談ですが、発表者の方のWhitebox Switchの説明がWebに載ってたので、 こちらも合わせてみれば参考になりそうです。

ホワイトボックススイッチとは何か? オープン化がすすむネットワーク機器のハードとソフトの動向(前編)。ホワイトボックススイッチユーザ会 第一回勉強会

Webフレームワーク比較

多種多様な GoのWebフレームワークを比較紹介する内容でした。

はじめのWebフレームワークのリストの数が多くて笑いました。

速さならGin、人気ならMartiniという印象を受けました。

あと、紹介があったkamiの作者の方が質問されたりしていました。

紹介してた速度の単位が nsだったのが、さすがgolang早いな〜と感じました。

TLでは、Martiniはreflection使い過ぎなので、negroniの方が 良さそうという話が上がっていたり、標準のnet/httpでいいでしょという話も上がっていたりしました。

全然関係ないですが、マティーニとネグローニとどちらもお酒の名前なんですね。

そういえば、某mattnさんも net/httpでいいでしょと何度かつぶやいていたような気がします。

私は、net/httpを軽く触った程度なのでよくわかりません。

gomobileでピアノの作り方

お子さんのために、モバイルのピアノアプリを作ったという話でした。

子供が広告タッチしちゃうとかあるあるなので笑いました。

内容についてはgolangの話はあまりなく、音楽(物理?)の話をわかりやすくお話されていて 門外漢でしたがフムフムーと聞いていました。

実戦へのGo導入

初学者向けの内容?だったので、golang歴 1ヶ月に満たない私にとっては、完全に俺得発表でした。

初学者向けのブログのリンクや、便利ツールのリンクなど、便利情報ばかりでした。

エディタはなんでもいいとお話されていて、Vimを使われているとお話されていましたが、 実際Vimgolang書くのは非常に相性が良いと思います(私もVimを使うので)。

vim-goも実際便利です。

GoライブラリAPIの変更を知る

GoのAPI(typeやfuncで外部公開されているもの)で、リビジョン間で変更(シグネチャの変更)があった APIを検知するgompatibleというツールを作成したという内容でした。

実際とても便利そうで、他の言語でもあったらいいのにと感じました。

型や関数のシグネチャを見るので、同じシグネチャで使用する意味が変わってしまったら 現状は対応できないとのことでしたが、これは仕方ないかな。

やるとしたら、変数の名前などの変更時に警告出すくらい?

Goのレガシーコードと戦った話

まず、Goで既にレガシーコードが作られているということに驚きましたw

内容的には、基本golangに限らない話でしたが、「性能が求められているかどうかわからない 箇所でgoroutineを多用する」はgolangならではでやばそうだなぁと感じました。

実コードでエラーを握りつぶすも恐ろしいけど笑った。

ISUCON5でトップスコアを出す方法

ISUCONで、どういう対策を取っていったかという話でしたが、 ここら辺の話は門外漢なので、フムフム〜と聞いていました。

「直前のレガシーコードの作成の主です。」とのしょっぱなのコメントに笑いました

golang が言語の選択で、ベースが早いというのは良いなぁ

Introduce log collector in Go into production

ログ取得のfluentd in-tail部分をfluentd-agent-hydraに置き換えるという話でした。

ここら辺も門外漢なのでフムフム〜と聞いていました。

Introduction to golang.org

golang.orgの様々なページの紹介でした。

日本語版のサイトは情報が古かったりするので、やっぱり英語で読むのが一番みたいです。

The Go Programming Language本も現状英語版だけですしね(私はebook版で買いました)。

あとは、Gopher GalaというHackathonの宣伝もされていました。

FINAL FANTASY Record Keeperを支えたGolang

FINAL FANTASY Record Keeperの開発(運用)の際に使用した、様々な便利ツールの紹介的な発表でした。

どれも便利そうでした。

特に、golang標準のflagsは使ったことありましたが、go-flags は使ったことがなかったので使ってみようと思います。

タグ形式なので、多言語対応の時に別構造体をきるのは辛そうですが そんな機会は私にはなさそうなのでw

あと、「信頼と安心のmattnプロダクツ」であるgo-colorable も紹介されていました。

Go が支えるインフラストラクチャーサービス

ゲヒルン株式会社の様々なサービスについての紹介でした。

golangで作られたサービスが沢山あって、golang触る機会がたくさんあってよいなーと感じました。

あと、発表練習のために、YAPC Asia の動画を見てると止まらなくなって発表前日 夜更かししてしまうらしいです。

私もつい先日 VimConfというイベントのために、スティーブ・ジョブス氏のOne more thingの動画を 深夜2時くらいから1時間見るという愚行をしてしまったので気持ちはよくわかります。

終わりに

主催のtenntennさん、Go Conference 2015 Winter運営にかかわられた皆さん、発表された皆さん、参加者の皆さんありがとうございました。

可能であれば来年も参加もとい発表したいです。