@DeNA
今回のメインコンテンツは、ソーシャルゲームプラットフォームと先日アメリカで開催されたGopher Fest 2017!! #5に引き続き130人オーバーの大規模開催でした!
でもまた女性が2人しかいないーーー!!涙
ディー・エヌ・エーさん提供のおいしいお寿司とカツサンドが出ました🍣
はじめに
ディー・エヌ・エーさんでは、AndAppというプロダクトのサーバーサイドを全部GAE Goで書いたそうです。 その経験で良いポイントがたくさんあったため、現在5つほどのプロジェクトでGoを採用していらっしゃるそうです。
事業領域としては、オープンプラットフォーム/オートモーティブ/ゲーム/ネットサービスインキャベーション/AIシステムといった新規事業でGoを採用し、開発を行っているとのことでした。
資料一覧
登壇 #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割方参加したので、もはや登壇者の方は全員お見かけしたことのある方でした。