Help us understand the problem. What is going on with this article?

Go Conference 2015 summer

More than 5 years have passed since last update.

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

mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした