第2回関西ソーシャルゲーム勉強会

5,743 views

Published on

http://atnd.org/events/32096

Published in: Technology
0 Comments
18 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,743
On SlideShare
0
From Embeds
0
Number of Embeds
1,481
Actions
Shares
0
Downloads
14
Comments
0
Likes
18
Embeds 0
No embeds

No notes for slide

第2回関西ソーシャルゲーム勉強会

  1. 1. PHPerなら絶対に知っておきたい3つのソーシャルゲーム 開発テクニック 2012-09-29 第2回関西ソーシャルゲーム勉強会 http://atnd.org/events/32096 KLab株式会社 黒井春人(@halt)
  2. 2. 自己紹介
  3. 3. ● PHP歴10年くらい● ソーシャルゲーム開発歴3年くらい● PHP版Redmine: CandyCaneコミッタ(一応)● KLab株式会社所属● PHPカンファレンス2012登壇Twitter: @halt Github: https://github.com/ha1t
  4. 4. [PR] Pull Requestキャンペーン[PR]今、CandyCaneプロジェクトにPull Requestを送ると高確率で @yando からCandyCane Tシャツをもらえるぞ!
  5. 5. [PR]         [PR]http://www.slideshare.net/ha1t/php2012-web
  6. 6. PHPerなら絶対に知っておきたい3つのソーシャルゲーム 開発テクニック
  7. 7. 1.apc_statデプロイ
  8. 8. ありがちなコード配布手順● メンテナンスモード開始(サービス停止)● コードの配布を開始● すべてのサーバへのコード配布を確認したら、● サーバを再起動● メンテナンスモード解除メンテナンスモードの時間が長い
  9. 9. コード配布どうやってます?● メンテナンス入れてrsync したり makuo したり、 git pull したり… ○ すべてのサーバへの配信が終わるまでサービスを止め る事になるので、フロントサーバの数が多かったり、アプ リの追加・変更の量が多いと時間がかかってしまう ○ サービスを止めないで配布した場合、配布途中の画面 にアクセスされて、予期しない動作が発生する危険性も ある
  10. 10. メンテナンス中の時間を減らして、安全にシステムのコード を配信したい。
  11. 11. apc_statデプロイ● コードの配布(正確にはgit pullの実行指令)を開 始● すべてのサーバへのコード配布を確認したら、● メンテナンスモード開始(サービス停止)● サーバを再起動● メンテナンスモード解除メンテナンスモードの時間がさっきより短い!!
  12. 12. apc_stat = 0にしてrestartするAPCのキャッシュ生存期間を無制限にする事で、Webサーバを再起動しない限りはキャッシュが持続するように設定。これにより、実態のコードが変更されても、サービスが影響を受ける事はなくなるので、全サーバにコードが配信されるのを待ってから、全サーバをリスタートする事で、メンテナンス時間を大幅に減らす事ができる。
  13. 13. 是非採用をご検討ください
  14. 14. 2.Jenkins
  15. 15. Jenkins(通称:おじいちゃん)とは 継続的インテグレーションを行うた めのツール。 自分たちは、pushされたコードの、 ● 構文エラーチェック ● コードの重複チェック ● コーディング規約のチェック ● ユニットテストの実行 ● テストサーバのへのデプロイ などをお願いしている。
  16. 16. 人間より機械のほうが得意な事って結構ある
  17. 17. こんちには みさなん おんげき ですか?わしたは げんき です。この ぶんょしう は いりぎす の ケブンッリジ だがいく の けゅきんう の けっかにんんげ は もじ を にしんき する ときその さしいょ と さいご の もさじえ あいてっればじばんゅん は めくちちゃゃ でもちんゃと よめる という けゅきんう に もづいとて わざと もじの じんばゅん を いかれえて あまりす。どでうす? ちんゃと よゃちめう でしょ?
  18. 18. 自動的に毎回必ず確認してくれるコードが masterブランチにpushされたタイミングで、必ずチェックが入るので、お昼ごはんを食べ過ぎて、とても眠い時にコードを書いても安心(気を抜いてやらかすと怒られるので)おじいちゃんが問題を発見すると、問題が発生したリビジョンの番号と、それに付随する情報をメールで送ってくるので、「誰の変更の時にどのような問題が発生したか」がすぐに分かる。
  19. 19. 昨日実際にあった出来事jQueryプラグインを変更して、プラグインの動作に必要なCSSを追記してPull Requestを送信。別の開発者がコードに問題ない事を確認してmergeした。
  20. 20. えっ?ちゃんと確認して問題なかったのに
  21. 21. 原因はデプロイ時のコンフリクト実はデザイナーがテストサーバーのCSSを直接修正していて、commitもpushもされていない状態だった。それをJenkinsがmergeしようとしてコンフリクト。失敗として報告した。お互いに相談して、コンフリクトを解決し、おじいちゃんの怒りを沈めた
  22. 22. 是非採用をご検討ください
  23. 23. 3.お菓子駆動開発
  24. 24. 組織の変化を許容する1つのアプリの開発期間は、三ヶ月から、長くて半年程度。社内には、多数のプロジェクトが並列して動き、プロジェクト間の人の移動が激しい。急成長するソーシャルゲーム開発会社には、プロジェクトの人の出入りに柔軟に対応する事が求められる
  25. 25. 全員が優秀なエンジニアにはなれない優秀なエンジニアはみんなサイバーエージェントに就職してしまった。技術だけでカバーできる範囲には、限界がある。ちゃんとコミュニケーションとって正しく役割分担して、チーム全体で考えた時に高いパフォーマンスを出せる仕組みを作らないとダメ。
  26. 26. みなさんもご存知の通り
  27. 27. (私も含めて) プログラマー はだいたい(コミュ障)シャイ
  28. 28. できるだけ早く仲良くなる為のツール仲良くなる=相手を知るどんな仕事が得意・苦手なのか、体調は万全なのかどうか心が折れそうになったり、
  29. 29. ストレス解消のための2つの欲望を満たしてくれるツール 尋常じゃない量のお菓子を買う 物欲 それを食べる 食欲
  30. 30. プロジェクトを越えた交流ができるお菓子をいろんなチームに配っていたら、他のチームからお返しがもらえたドキュメントや、メールではわからない情報がてにはいり、他チームとのやりとりがかなり円滑になった。
  31. 31. 物量が重要(たくさん配る。気兼ね無く食べる)
  32. 32. 時には宗教論争も
  33. 33. 是非採用をご検討ください
  34. 34. KLab株式会社では、(エリート|普通の)エンジニアを募集しています。 「お菓子をたべながら仕事をしてみたい」 「毎朝フルーツを食べたい」 そんな不純な動機でも大丈夫! PHPで楽しくお仕事しましょう! 技術を追いかけるだけでなく、 スキル差をカバーして成果を出す 仕組みを私達と作っていきましょう
  35. 35. おしまい

×