phperがgolangでもがいてる話@第1回 関西golang勉強会
TRANSCRIPT
おまえだれやねん
うつみ けいすけ
KLab (Osaka) Developer
よく忘れるもの:名刺
マイブーム:禁酒ダイエット
刺青エンジニアって覚えてください
ダイビング好き
Golang(ここ最近),PHP,C#
チューニング好き(ISUCON5予選落ちたorz
関西ゲーム勉強会運営
PHPカンファレンス関西実行委員
犬と爬虫類が好き
KLabでのgolang実績プロダクトとしてはない(開発中のものはある
運用中の案件でのツールはたくさんある
負荷試験ツール
MySQLプロファイラ etc…
エンジニア中心で情報共有活発
ISUCON予選で利用
新規案件の技術選定が始まる今まではPHPでゲームサーバーを構築
山程ノウハウある(開発も運用も
PHPで動く前提の爆速サーバーもある
独自ライブラリ等の資産もいっぱいある
何よりPHPerいっぱい居る
_人人人人人人_
> 常時接続 <
‾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^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‾
_人人人人人人_
> 常時接続 <
‾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‾
_人人人人人人_
> 常時接続 <
‾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‾
サーバー言語選択あ、PHPさんおつかれっしたー。から始まる
膨大なゲームロジックをサーバー側で書く
膨大な数の擬似3D(2D)空間の座標演算
高速なmutex制御や堅牢な並列/並行処理
TCP(RPC/ProtocolBuf)との親和性
C++ と golanggolang はみんながビギナー
ゲーミングエンジニアはC++ の人が多い
C++ ならゲーミングライブラリとか豊富
Linux 上でC++ 書いた人居ない
じゃあみんなビギナーだね(にっこり
go get++)依存関係を解消しつつ、実行環境にパッケージのダウンロードとインストールを行ってくれる
++)コンパイル&インストール は go install
--)でもリポジトリ管理には向かないので、git subtreeなどで管理した方がいい場面もある
--)バージョンを固定できない
go fmtgolang 側で細かなコーディングルールが設定されている
ぐっちゃぐちゃに書いてもcommit前にこれやっとけば安心
IDEごとでのフォーマッタとかいらんかったんや
まじで宗教戦争終わった。
goimportsと合わせてやると尚良し
Makefileとか作って、fmt&importsをさくっとできるようにしておくと便利 例) make code-clean
特にinterface,君は何者だ…メソッド群を定義することによって、別のものも同じ要素を持つものとして扱える
しかもimplementsを宣言しなくていい
interface{}って定義すると何でも渡せる
抽象化っぽい(≠抽象化)こともできるし
まだまだ使いドコロはいっぱいありそう
差分構造化に向かない
構造体の埋め込みがある
埋め込みは匿名フィールドに定義されるだけ
よって、継承とは全くの別物であるのに、似たような書き方ができてしまう
リスコフの置換原則(LSP)とは全く考え方が違う(当たり前
goに入ればgoに従えgolang を始めてすぐのころはある程度簡単に取り扱える(素晴らしい
goらしさというものを意識せずに続けると、これ、俺でもすぐできそう!!!!という錯覚を引き起こす
そして再度goらしさを求める旅にでる(now
PHPに比べ、言語の設計思想をきちんと汲み取り、コードに反映させることの比重がとても大きい
それによる恩恵も大きい
[告知]関西ゲーム勉強会・2015冬
2015/11/28(土) 14:00~
株式会社サイバーエージェント様大阪オフィス
https://ksgs.doorkeeper.jp/events/31863
https://www.facebook.com/ksgstudy