SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
PHPerなら絶対に知っておき
たい3つのソーシャルゲーム
     開発テクニック
            2012-09-29
 第2回関西ソーシャルゲーム勉強会
  http://atnd.org/events/32096

  KLab株式会社 黒井春人(@halt)
自己紹介
● PHP歴10年くらい
● ソーシャルゲーム開発歴3年くらい
● PHP版Redmine: CandyCaneコミッタ(一応)
● KLab株式会社所属
● PHPカンファレンス2012登壇
Twitter: @halt Github: https://github.com/ha1t
[PR] Pull Requestキャンペーン[PR]

今、CandyCaneプロジェクトにPull Request
を送ると高確率で @yando から
CandyCane Tシャツをもらえるぞ!
[PR]         [PR]




http://www.slideshare.net/ha1t/php2012-web
PHPerなら絶対に知っておき
たい3つのソーシャルゲーム
     開発テクニック
1.apc_statデプロイ
ありがちなコード配布手順

●   メンテナンスモード開始(サービス停止)
●   コードの配布を開始
●   すべてのサーバへのコード配布を確認したら、
●   サーバを再起動
●   メンテナンスモード解除


メンテナンスモードの時間が長
い
コード配布どうやってます?

● メンテナンス入れてrsync したり makuo したり、
  git pull したり…
 ○ すべてのサーバへの配信が終わるまでサービスを止め
   る事になるので、フロントサーバの数が多かったり、アプ
   リの追加・変更の量が多いと時間がかかってしまう
 ○ サービスを止めないで配布した場合、配布途中の画面
   にアクセスされて、予期しない動作が発生する危険性も
   ある
メンテナンス中の時間を減ら
して、安全にシステムのコード
   を配信したい。
apc_statデプロイ

● コードの配布(正確にはgit pullの実行指令)を開
  始
● すべてのサーバへのコード配布を確認したら、
● メンテナンスモード開始(サービス停止)
● サーバを再起動
● メンテナンスモード解除


メンテナンスモードの時間が
さっきより短い!!
apc_stat = 0にしてrestartする

APCのキャッシュ生存期間を無制限にする事で、
Webサーバを再起動しない限りはキャッシュが持続
するように設定。

これにより、実態のコードが変更されても、サービ
スが影響を受ける事はなくなるので、全サーバに
コードが配信されるのを待ってから、全サーバをリ
スタートする事で、メンテナンス時間を大幅に減ら
す事ができる。
是非採用をご検討ください
2.Jenkins
Jenkins(通称:おじいちゃん)とは

        継続的インテグレーションを行うた
        めのツール。
        自分たちは、pushされたコードの、
        ● 構文エラーチェック
        ● コードの重複チェック
        ● コーディング規約のチェック
        ● ユニットテストの実行
        ● テストサーバのへのデプロイ
        などをお願いしている。
人間より機械のほうが
得意な事って結構ある
こんちには みさなん おんげき ですか?
わしたは げんき です。
この ぶんょしう は いりぎす の ケブンッリジ だが
いく の けゅきんう の けっか
にんんげ は もじ を にしんき する とき
その さしいょ と さいご の もさじえ あいてっれば
じばんゅん は めくちちゃゃ でも
ちんゃと よめる という けゅきんう に もづいとて わ
ざと もじの じんばゅん を いかれえて あまりす。
どでうす? ちんゃと よゃちめう でしょ?
自動的に毎回必ず確認してくれる

コードが masterブランチにpushされたタイミング
で、必ずチェックが入るので、お昼ごはんを食べ過
ぎて、とても眠い時にコードを書いても安心(気を
抜いてやらかすと怒られるので)

おじいちゃんが問題を発見すると、問題が発生した
リビジョンの番号と、それに付随する情報をメール
で送ってくるので、「誰の変更の時にどのような問
題が発生したか」がすぐに分かる。
昨日実際にあった出来事

jQueryプラグインを変更して、
プラグインの動作に必要なCSSを追記して
Pull Requestを送信。

別の開発者がコードに問題ない事を
確認してmergeした。
えっ?
ちゃんと確認して問題なかったのに
原因はデプロイ時のコンフリクト

実はデザイナーがテストサーバーのCSSを直接修
正していて、commitもpushもされていない状態だっ
た。

それをJenkinsがmergeしようとしてコンフリクト。失
敗として報告した。

お互いに相談して、コンフリクトを解決し、
おじいちゃんの怒りを沈めた
是非採用をご検討ください
3.お菓子駆動開発
組織の変化を許容する

1つのアプリの開発期間は、三ヶ月から、長くて半
年程度。
社内には、多数のプロジェクトが並列して動き、プ
ロジェクト間の人の移動が激しい。

急成長するソーシャルゲーム開発会社に
は、プロジェクトの人の出入りに柔軟に対
応する事が求められる
全員が優秀なエンジニアにはなれない

優秀なエンジニアはみんなサイバーエージェントに
就職してしまった。
技術だけでカバーできる範囲には、限界がある。

ちゃんとコミュニケーションとって正しく役
割分担して、チーム全体で考えた時に高
いパフォーマンスを出せる仕組みを作らな
いとダメ。
みなさんも
ご存知の通り
(私も含めて)


 プログラマー
     は
だいたい(コミュ障)シャイ
できるだけ早く仲良くなる為のツール

仲良くなる=相手を知る




どんな仕事が得意・苦手なのか、
体調は万全なのかどうか
心が折れそうになったり、
ストレス解消のための
2つの欲望を満たしてくれるツール


  尋常じゃない量のお菓子を買う

       物欲

      それを食べる

       食欲
プロジェクトを越えた交流ができる

お菓子をいろんなチームに配っていたら、
他のチームからお返しがもらえた
ドキュメントや、メールではわからない情報
がてにはいり、他チームとのやりとりがか
なり円滑になった。
物量が重要
(たくさん配る。気兼ね無く食べる)
時には宗教論争も
是非採用をご検討ください
KLab株式会社では、(エリート|普通の)エ
ンジニアを募集しています。

  「お菓子をたべながら仕事をしてみたい」
     「毎朝フルーツを食べたい」

    そんな不純な動機でも大丈夫!
    PHPで楽しくお仕事しましょう!


   技術を追いかけるだけでなく、
  スキル差をカバーして成果を出す
  仕組みを私達と作っていきましょう
おしまい

Más contenido relacionado

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

最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
Yusuke Ando
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
yut148atgmaildotcom
 
Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋
Yuto M
 
Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2
Yasukazu Kawasaki
 
第2回勉強会資料 岩本(配布用)
第2回勉強会資料 岩本(配布用)第2回勉強会資料 岩本(配布用)
第2回勉強会資料 岩本(配布用)
Takahisa Iwamoto
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
Kenji NAKAGAKI
 

Similar a 第2回関西ソーシャルゲーム勉強会 (20)

ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
 
Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみたPHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
 
Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
採用LT「まだお祈りデプロイで消耗してるの?」
採用LT「まだお祈りデプロイで消耗してるの?」採用LT「まだお祈りデプロイで消耗してるの?」
採用LT「まだお祈りデプロイで消耗してるの?」
 
Introduction Pycon2010
Introduction Pycon2010Introduction Pycon2010
Introduction Pycon2010
 
AWSスポットインスタンスの真髄
AWSスポットインスタンスの真髄AWSスポットインスタンスの真髄
AWSスポットインスタンスの真髄
 
第2回勉強会資料 岩本(配布用)
第2回勉強会資料 岩本(配布用)第2回勉強会資料 岩本(配布用)
第2回勉強会資料 岩本(配布用)
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
 
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
JIT for PHP を試した
JIT for PHP を試したJIT for PHP を試した
JIT for PHP を試した
 
C#で速度を極めるいろは
C#で速度を極めるいろはC#で速度を極めるいろは
C#で速度を極めるいろは
 
Android Dev Tools Knowledge
Android Dev Tools KnowledgeAndroid Dev Tools Knowledge
Android Dev Tools Knowledge
 

Último

Último (12)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

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