LoginSignup
22
22

More than 5 years have passed since last update.

Go Conference 2015 summer

Last updated at Posted at 2015-06-21

Official

Generative programming in Go. - monochromegane

Debugging Go Code with GDB - kaneshin

Gore: A Tale of Go REPL - motemen

Go言語でコマンドラインツールをつくるときに僕の語ること - deeeet

自己完結型の形態素解析器をgoで作った話 - ikawaha

Gaurun〜A general push notification server in Go〜 - cubicdaiya

  • slide
  • GourunとはGo製push通知基盤システム
  • 以前はプッシュ通知はジョブキュー(Q4M+PHP)
  • 現在はNginx + Gourun(APIベース、JSON)
  • チャネルのサイズを静的固定(チャネル数超えるとブロック)
  • 監視はZabbix。API(stat/go、stat/app)でメモリ、GC、 ゴルーチン数、チャネル数を取得する。
  • ゴルーチンがメモリリークしたり、チャネルのブロッキングしたりするので、監視して注意する。外部ライブラリが悪さをしていたので、そのライブラリをforkして直して使っている。
  • golang-stats-api-handlerそのまま出力している。

Goと電子工作とロボット - たけいひでゆき

ピクシブ社内広告サーバーでのGoの開発・運用 - catatsuy

  • slide
  • Go製広告サーバーの紹介
  • Nginx -> Circus -> App(Go) -> fluentd -> Admin(MySQL)
  • キャッシュ機構やコネクションの保持とか考える事が減るのでNginxで受ける。
  • GoでTCPをlistenして起動したサーバーに対してproxy_passすると遅かったので、Unixドメインソケットで受けたかった。
  • Circus
    • Python製のプロセス管理ツール。Circus自体がソケットファイルを持って、アプリケーションはファイルディスクリプタをlistenさせて起動してくれる。
  • UNIXドメインソケット
    • 同一マシンなら親子関係がなくても可能なプロセス間通信。
    • memcachedにも利用している
  • profiling
  • testing.B
  • golang-stats-api-handler -> muninで可視化。
  • nginxから社内から見れないように
  • Goプロセス監視はCircus、Nagios。
  • stopwatch
  • もっと速く・・・
    • CPU throttling (最大周波数で動くように)。/etc/default/cpifrequtils を編集。広告サーバーとDBサーバーでは有効だった。
  • Goのログ
    • 標準出力してCircusに任せていたが、ピーク時にCircusが負荷がかかるので、ログローテートを自前で実装した。(USR1受け取ったら新しくファイルを開いて、pidファイルを作る)

GOで基盤システムつくってる話 - サイバーエージェント 西尾様

  • slide
  • ソシャゲのRealtime Messaging Platformで何故Goを採用したかの話
  • コード
    • 読みやすい
    • 機能/担当者間のレビューや相互理解が容易
    • フォーマットやコード規定が明確
  • 学習コスト
    • A Tour of Go
    • Effective Go
    • 60-70%は自習でなんとかなる
    • 30%がGOらしく書く事
  • 開発環境がgomt,golint,go toolvet,godocとか標準で豊富
  • デプロイが楽
  • テストが楽
  • ベンチマークが楽
  • プロファイルが楽
  • パッケージ管理に求める事
    • versioningが必須
    • vendoringは?
  • パッケージ管理の選択技
  • パーケージ構成
    • レイヤー、機能でパッケージを分離
    • ルートパッケージから2階層以内
  • Goぽいコードを近づける為に
    • まずは標準パーケージ見る
  • ライブラリやフレームワークの選定
  • genericsないのどうしてる?
    • interface + type check{}
    • reflect使わない

LT

AppEngine for Go Unittest - sinmetal

slide

pp and reflect - k0kubun

slide

Goのパッケージ構成で試行錯誤してみた話 - fkm

slide

Go製の拡張可能なslackbot - kyokomi

slide

22
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
22