Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PHPerがgolangでもがいてる話@第1回 関西Golang勉強会

1,531 views

Published on

PHPerがgolangでもがいてる話


-- Gopherくん
The Go gopher was designed by Renee French.
The gopher stickers was made by Takuya Ueda.
Licensed under the Creative Commons 3.0 Attributions license.

Published in: Engineering
  • Be the first to comment

PHPerがgolangでもがいてる話@第1回 関西Golang勉強会

  1. 1. PHPerが golangで もがいてる話 Keisuke Utsumi @KLab Osaka 第1回 関西golang勉強会 2015/10/12
  2. 2. おまえだれやねん うつみ けいすけ KLab (Osaka) Developer よく忘れるもの:名刺 マイブーム:禁酒ダイエット 刺青エンジニアって覚えてください ダイビング好き Golang(ここ最近),PHP,C# チューニング好き(ISUCON5予選落ちたorz 関西ゲーム勉強会運営 PHPカンファレンス関西実行委員 犬と爬虫類が好き
  3. 3. ※この発表は私個人の見解であり、 所属する組織の公式見解ではありません。
  4. 4. Agenda 質問タイム プロダクトでgoを勝ち取った話 PHPerが悩んだgoの話 まとめ
  5. 5. Agenda 質問タイム プロダクトでgoを勝ち取った話 PHPerが悩んだgoの話 まとめ
  6. 6. 質問タイム
  7. 7. Agenda 質問タイム プロダクトでgoを勝ち取った話 PHPerが悩んだgoの話 まとめ
  8. 8. KLabでのgolang実績 プロダクトとしてはない(開発中のものはある 運用中の案件でのツールはたくさんある 負荷試験ツール MySQLプロファイラ etc… エンジニア中心で情報共有活発 ISUCON予選で利用
  9. 9. 新規案件の技術選定が始まる 今まではPHPでゲームサーバーを構築 山程ノウハウある(開発も運用も PHPで動く前提の爆速サーバーもある 独自ライブラリ等の資産もいっぱいある 何よりPHPerいっぱい居る
  10. 10. でもね
  11. 11. 次の案件、PHPさんでは 役 不 足  なんですよ。
  12. 12. _人人人人人人_ > 常時接続 <  ̄Y^Y^Y^Y^Y ̄
  13. 13. _ 人 人 人 人 人 人 _ >   常 時 接 続   <  ̄ Y^Y^Y^Y^Y ̄ _人人人人人人人人人人人人_ > 求められる双方向通信 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  14. 14. _ 人 人 人 人 人 人 _ >   常 時 接 続   <  ̄ Y^Y^Y^Y^Y ̄ _人人人人人人人人人人人人_ > 求められる双方向通信 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄_人人人人人人人人人_ > 捨てられるHTTP <  ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
  15. 15. _ 人 人 人 人 人 人 _ >   常 時 接 続   <  ̄ Y^Y^Y^Y^Y ̄ _人人人人人人人人人人人人_ > 求められる双方向通信 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ _ 人 人 人 人 人 人 人 人 人 _ >   捨 て ら れ る HTTP  <  ̄ Y^Y^Y^Y^Y^Y^Y^Y ̄ _人人人人人人人人人人人人_ > 大規模人数による同期 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  16. 16. _ 人 人 人 人 人 人 _ >   常 時 接 続   <  ̄ Y^Y^Y^Y^Y ̄ _人人人人人人人人人人人人_ > 求められる双方向通信 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ _ 人 人 人 人 人 人 人 人 人 _ >   捨 て ら れ る HTTP  <  ̄ Y^Y^Y^Y^Y^Y^Y^Y ̄ _ 人 人 人 人 人 人 人 人 人 人 人 人 _ >   大 規 模 人 数 に よ る 同 期   <  ̄ Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ _人人人人人人人人人人人人人人人人人人人人人人_ > PHPってもうオワコンでしょ?っていうDisり <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  17. 17. _ 人 人 人 人 人 人 _ >   常 時 接 続   <  ̄ Y^Y^Y^Y^Y ̄ _人人人人人人人人人人人人_ > 求められる双方向通信 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ _ 人 人 人 人 人 人 人 人 人 _ >   捨 て ら れ る HTTP  <  ̄ Y^Y^Y^Y^Y^Y^Y^Y ̄ _ 人 人 人 人 人 人 人 人 人 人 人 人 _ >   大 規 模 人 数 に よ る 同 期   <  ̄ Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ _人人人人人人人人人人人人人人人人人人人人人人_ > PHPってもうオワコンでしょ?っていうDisり <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  18. 18. サーバー言語選択 あ、PHPさんおつかれっしたー。から始まる 膨大なゲームロジックをサーバー側で書く 膨大な数の擬似3D(2D)空間の座標演算 高速なmutex制御や堅牢な並列/並行処理 TCP(RPC/ProtocolBuf)との親和性
  19. 19. C++ と golang golang はみんながビギナー ゲーミングエンジニアはC++ の人が多い C++ ならゲーミングライブラリとか豊富 Linux 上でC++ 書いた人居ない じゃあみんなビギナーだね(にっこり
  20. 20. 勝者:golang 開発環境構築は一瞬 C++で試しに最低限の環境をメンバーに提供 しようとしたら1週間かかった LL言語ライクにかける ワクワクできる Gopherかわいい
  21. 21. Agenda 質問タイム プロダクトでgoを勝ち取った話 PHPerが悩んだgoの話 まとめ
  22. 22. 標準ツールが優秀過ぎて悩んだ go get go fmt go test go test -bench
  23. 23. go get ++)依存関係を解消しつつ、実行環境にパッケー ジのダウンロードとインストールを行ってくれる ++)コンパイル&インストール は go install --)でもリポジトリ管理には向かないので、git subtreeなどで管理した方がいい場面もある --)バージョンを固定できない
  24. 24. go fmt golang 側で細かなコーディングルールが設定されている ぐっちゃぐちゃに書いてもcommit前にこれやっとけば安心 IDEごとでのフォーマッタとかいらんかったんや まじで宗教戦争終わった。 goimportsと合わせてやると尚良し Makefileとか作って、fmt&importsをさくっとできるように しておくと便利 例) make code-clean
  25. 25. go test ( -bench {hoge}_test.go ってファイルにテスト書くだけ Bench{Hoge}ってメソッドでベンチマーク取れ る ライブラリ選定するときにめっちゃ便利
  26. 26. 要素が少なすぎて悩んだ struct func interface goroutine chan
  27. 27. 特にinterface,君は何者だ… メソッド群を定義することによって、別のもの も同じ要素を持つものとして扱える しかもimplementsを宣言しなくていい interface{}って定義すると何でも渡せる 抽象化っぽい(≠抽象化)こともできるし まだまだ使いドコロはいっぱいありそう
  28. 28. 差分構造化に向かない 構造体の埋め込みがある 埋め込みは匿名フィールドに定義されるだけ よって、継承とは全くの別物であるのに、似たよ うな書き方ができてしまう リスコフの置換原則(LSP)とは全く考え方が違 う(当たり前
  29. 29. Agenda 質問タイム プロダクトでgoを勝ち取った話 PHPerが悩んだgoの話 まとめ
  30. 30. goに入ればgoに従え golang を始めてすぐのころはある程度簡単に取り扱える(素 晴らしい goらしさというものを意識せずに続けると、これ、俺でも すぐできそう!!!!という錯覚を引き起こす そして再度goらしさを求める旅にでる(now PHPに比べ、言語の設計思想をきちんと み取り、コード に反映させることの比重がとても大きい それによる恩恵も大きい
  31. 31. goで大規模負荷分散サーバー書きたい人 是非声かけてください!!!! 一緒に勉強しましょう。 (コワイヒトジャナイヨ
  32. 32. [告知]関西ゲーム勉強会・2015冬 2015/11/28(土) 14:00~ 株式会社サイバーエージェント様大阪オフィス https://ksgs.doorkeeper.jp/events/31863 https://www.facebook.com/ksgstudy

×