golang.tokyo #6 参加レポート

· 2187 words · 5 minute read

@DeNA

今回のメインコンテンツは、ソーシャルゲームプラットフォームと先日アメリカで開催されたGopher Fest 2017!! #5に引き続き130人オーバーの大規模開催でした!

でもまた女性が2人しかいないーーー!!涙

ディー・エヌ・エーさん提供のおいしいお寿司とカツサンドが出ました🍣

はじめに

ディー・エヌ・エーさんでは、AndAppというプロダクトのサーバーサイドを全部GAE Goで書いたそうです。 その経験で良いポイントがたくさんあったため、現在5つほどのプロジェクトでGoを採用していらっしゃるそうです。

事業領域としては、オープンプラットフォーム/オートモーティブ/ゲーム/ネットサービスインキャベーション/AIシステムといった新規事業でGoを採用し、開発を行っているとのことでした。

資料一覧

資料一覧 -connpass


登壇 #1 @tenntennさん

Gopher fest2017参加レポート

最近はカウルアプリ制作してる。

今日はThe State of Goセッションの内容を展開する。

Go1.9 8月上旬にリリース!

言語仕様の変更

リファクタリングを安全にできるように いままでは型の変更が難しかった 等価な型がつくれなかったから

バージョンアップでは、型のエイリアスを定義できるようになった

標準ライブラリの追加

•ビット演算に便利なライブラリたち •sync.Map •HTML/templateが安全になった •os.Exec 重複する環境変数を削除し、一番後ろのを上書きするようになった •早くなった •コンパイラのエラーメッセージが改善された •コンパイラの速度改善された •go testの改善 •go docがフィールドにリンク貼れるようになった

エラーメッセージの改善は大変ありがたい…!


登壇 #2 @pospomeさん

ディー・エヌ・エー 初めてGoでマイクロサービスAndAppをつくって得た教訓

PCでスマホゲームが遊べるプラットファームを、GAEを使ってつくった。

フレームワークに拘らないほうがいい

perl、rubyの経験から、フレームワーク重視で始めた Gin、Echo使ってみたが、ワイルドカードパス使えなかったり、設計が変わりすぎ、開発が途中でストップしたりした…

フレームワークに拘って振り回されない! Goは標準の言語仕様がシンプルなので、マイクロサービスにはフレームワークいらないかも

独自のエラー型を定義したらハマった

GoはNilにも型があった

標準のエラー型と独自インターフェースのエラー型がバッティングして、違うNilとして認識されエラーを出さない…

標準のエラーインターフェースだけ使う、でよかった

reflex compile /reflection が遅い

jsonのバリデーションにgojsonschemaを選択した 複数のスキーマを選択できるので採用したが、パフォーマンステストの段階で動作が遅いことが発覚

動的言語に慣れているとコストの高い操作への意識が薄れがち、コンパイル言語を過信しがちだけど、やっぱりちゃんと考えなきゃダメ。

非対称暗号は遅い

最近改善されているが、opensslに比べてとっても貧弱

対象鍵の150倍くらい遅い

cgoを使ったopensslもあるが、GAEでは使えなかった…

結局PHPを使ってトリッキーに回避した

結論

困ったらGoの哲学に帰って、シンプルなアプローチを取ること!

コンパイル言語だからって過信しないこと!


LT #1 Konbuiさん@カヤック

ゲーム開発に欠かせないCSVをシュッと見る話

マスタデータをスプレッドシートからCSVにしてとってくるけど、よくディレクターとかにズレてるって言われる

デフォルトを空にする運用とか カラムとデータの関係が見づらいとか 量が多すぎとか テーブル作れないとか

csviewerっていう便利なのをつくった pythonのcsvkitみたいなやつ ターミナルで見やすい!

実装にあたって使ったパッケージ

soh335/sliceflag 同一オプションで複数の値を簡単に受け取れる

olekukonko/tablewriter


LT #2 鎌田健史さん@Klab

Go Code Review Commentsを翻訳した話

普段Unityを書いてる

Effective Goより軽めなのが"Go Code Review Comments"

最初のコードレビューで@tenntennさんにボコボコにされ、紹介されたので翻訳した

翻訳しながら正解パターンを見られたのが、とてもよかった!


LT #3 Jamesさん@エウレカ

Goで関数型開発はできるか?

小さい頃から日本のアニメが好きで、中学校でALTしながら日本語勉強した(超うまい)

Scalaが得意

関数型開発とは、副作用がない開発 処理する関数と追加する関数はちゃんと分けてーーー!!

正直Scalaの方がすき、長期成長がある言語だと思う。 でも会社として導入するなら、すぐ誰でもきれいに書けるGoがいいと思う!


LT #4 スズキケンゴさん@moneyfoward

Goの暗号アルゴリズムについて

普段はセキュリティやってる 仕事でGoはあまり書いてない


参加しての感想

3ヶ月前にはサッパリだったセッションの内容が!頭に入るぞ!(感動

自分でパッケージ作れるイメージが全然わかないので、次の初心者向け勉強会で会得してきたいです。 文学部出身なので英語ドキュメントの日本語訳もしたいけど、いまは基本的なアルゴリズムとかの方をもっと勉強したい、勉強しないとなーと感じました。

半年の間でGoのイベントは9割方参加したので、もはや登壇者の方は全員お見かけしたことのある方でした。