SlideShare a Scribd company logo
1 of 47
Download to read offline
1
「PHPエンジニアが
Nodeエンジニアになったときの
7つの効能」
2014/6/23
#php勉強会
@goodoo
2
お前、誰よ
• 株式会社 CyberX
• CTO
• 白井 英
• エンジニア
• Twitter
@goodoo
• Blog
http://ameblo.jp/goodoo
• DQ10
すぐちむ (FB392-435) プクリポ(旅芸人)
3
なぜPHPエンジニアがNode?
4
一年前・・・
5
_人人人人人人人人人人人人人_
> 突然の全社的取り組みの話 <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
6
Node.jsでやらないか?
7
いいこといっぱいあるよ!
8
一年前の開発環境
9
10
全社取り組みの開発環境
11
新しい技術要素
12
一年前の開発環境
13
テストコードなんてなかった・・・
14
Jenkinsさんって役に立つの?
15
Migration管理、いや無理っしょ
16
Node.jsに切り替えた
結果は?
17
桃源郷なんて
なかった
18
得られたものは
何か
19
20
一年前
21
この先生きのこるには
22
どうすればいいか?
23
phpコミュニティで
学んだ事を生かす
24
2012/11/3
phpmatsuri
25
このスライドの内容を実践
http://www.ryuzee.com/contents/blog/6102
26
・ユニットテストを書く
・結合テストを自動化
・継続的インテグレーションサーバを
 つかう
・デプロイを自動化
・環境構築を自動化
27
2012/9/15
PHPカンファレンス
28
このスライドの内容を取り入れる
http://sotarok.hatenablog.com/entry/20120919/presented_git_and_pull_request_work_flow_at_phpcon2012
29
アレンジ
30
・1チケット1ブランチ
・ブランチ名は、チケット番号
・ローカルのVirtualBoxで開発
・ローカルのテストが通ったら
 featureへPUSH
31
node
port:1234
/var/www/feature/1234
チケット番号とURLを結びつけ
node
port:1235
/var/www/feature/1235
node
port:1236
/var/www/feature/1236
node
port:1237
/var/www/feature/1237
nginx
1234.example.com
1235.example.com
1236.example.com
1237.example.com
server {
listen 80;
server_name ~^(?<port>d+).example.com;
location / {
set $url example.com;
proxy_pass http://$url:${port};
}
}
32
現在の開発環境
33
34
自分たちのプロダクト
35
Yakushimanode.jsのゲームエンジンフレームワーク
36
ShiretokoBackbone.jsのラッパー
37
IguazuDeploy & Migration Tool
38
得られたもの
39
・TDD
・テストの自動化
・デプロイの自動化
・Migration管理
・マージリクエストによる
 コードレビュー
40
技術的負債を少なく保つ
41
品質を作り込む
42
継続的デリバリー
43
祈る開発ではなく
自信をもった開発へ
44
自分たちのプロセスは
自分たちで進化させる
ことができた!
45
PHPコミュニティの
多様性、懐の深さの
おかげ
46
PHPコミュニティ
っていいよね
47
ご清聴ありがとうございました

More Related Content

What's hot

Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Yoshinori Kawasaki
 
VS Code Day 2021 Recap
VS Code Day 2021 RecapVS Code Day 2021 Recap
VS Code Day 2021 RecapYuki Ueda
 
Java event impression
Java event impressionJava event impression
Java event impressionOgataAyaka
 
ちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜShinobu Okano
 
GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?Kiyotaka Kunihira
 
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」Fujio Kojima
 
Pythonにおけるデバッガツールpdbについて
PythonにおけるデバッガツールpdbについてPythonにおけるデバッガツールpdbについて
PythonにおけるデバッガツールpdbについてRyota Sakamoto
 
俺とInstant team building
俺とInstant team building俺とInstant team building
俺とInstant team buildingMasayuki KaToH
 
フォクすけロボ開発進捗報告
フォクすけロボ開発進捗報告フォクすけロボ開発進捗報告
フォクすけロボ開発進捗報告Takao Sumitomo
 
Gitで安定マスターブランチを手に入れる
Gitで安定マスターブランチを手に入れるGitで安定マスターブランチを手に入れる
Gitで安定マスターブランチを手に入れるWorks Applications
 
【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用Reimi Kuramochi Chiba
 
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜Keisuke Utsumi
 
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料Daisuke Ando
 
会社に Github導入した話
会社に Github導入した話会社に Github導入した話
会社に Github導入した話Yutaka Kinjyo
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術Takuto Wada
 
コーディング入門以前
コーディング入門以前コーディング入門以前
コーディング入門以前Yutaka Kinjyo
 
私が見てきたあるセカイの物語 Part I & II
私が見てきたあるセカイの物語 Part I & II私が見てきたあるセカイの物語 Part I & II
私が見てきたあるセカイの物語 Part I & IIKoichi ITO
 
クラウドワークスを使ったバーチャル開発術(セミナー資料)
クラウドワークスを使ったバーチャル開発術(セミナー資料)クラウドワークスを使ったバーチャル開発術(セミナー資料)
クラウドワークスを使ったバーチャル開発術(セミナー資料)Innova Inc.
 
クラウドワークスを使ったバーチャル開発術
クラウドワークスを使ったバーチャル開発術クラウドワークスを使ったバーチャル開発術
クラウドワークスを使ったバーチャル開発術Kimiya Sato
 
Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12matsuo kenji
 

What's hot (20)

Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方
 
VS Code Day 2021 Recap
VS Code Day 2021 RecapVS Code Day 2021 Recap
VS Code Day 2021 Recap
 
Java event impression
Java event impressionJava event impression
Java event impression
 
ちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜ
 
GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?
 
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
 
Pythonにおけるデバッガツールpdbについて
PythonにおけるデバッガツールpdbについてPythonにおけるデバッガツールpdbについて
Pythonにおけるデバッガツールpdbについて
 
俺とInstant team building
俺とInstant team building俺とInstant team building
俺とInstant team building
 
フォクすけロボ開発進捗報告
フォクすけロボ開発進捗報告フォクすけロボ開発進捗報告
フォクすけロボ開発進捗報告
 
Gitで安定マスターブランチを手に入れる
Gitで安定マスターブランチを手に入れるGitで安定マスターブランチを手に入れる
Gitで安定マスターブランチを手に入れる
 
【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用
 
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
 
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料
 
会社に Github導入した話
会社に Github導入した話会社に Github導入した話
会社に Github導入した話
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
コーディング入門以前
コーディング入門以前コーディング入門以前
コーディング入門以前
 
私が見てきたあるセカイの物語 Part I & II
私が見てきたあるセカイの物語 Part I & II私が見てきたあるセカイの物語 Part I & II
私が見てきたあるセカイの物語 Part I & II
 
クラウドワークスを使ったバーチャル開発術(セミナー資料)
クラウドワークスを使ったバーチャル開発術(セミナー資料)クラウドワークスを使ったバーチャル開発術(セミナー資料)
クラウドワークスを使ったバーチャル開発術(セミナー資料)
 
クラウドワークスを使ったバーチャル開発術
クラウドワークスを使ったバーチャル開発術クラウドワークスを使ったバーチャル開発術
クラウドワークスを使ったバーチャル開発術
 
Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12
 

Viewers also liked

Demand Driven Marketing. By Greg Banks. Available On Linked In. February 2011.
Demand  Driven Marketing. By Greg Banks. Available On Linked In. February 2011.Demand  Driven Marketing. By Greg Banks. Available On Linked In. February 2011.
Demand Driven Marketing. By Greg Banks. Available On Linked In. February 2011.banksgreg
 
Oficina De Escrita Criativa
Oficina De Escrita CriativaOficina De Escrita Criativa
Oficina De Escrita CriativaBiblioteca AEG
 
AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)Suguru Shirai
 
リファクタリング読書会20120220
リファクタリング読書会20120220リファクタリング読書会20120220
リファクタリング読書会20120220Suguru Shirai
 
レガシーコード読書会 20120618
レガシーコード読書会 20120618レガシーコード読書会 20120618
レガシーコード読書会 20120618Suguru Shirai
 

Viewers also liked (8)

Ballet
BalletBallet
Ballet
 
Demand Driven Marketing. By Greg Banks. Available On Linked In. February 2011.
Demand  Driven Marketing. By Greg Banks. Available On Linked In. February 2011.Demand  Driven Marketing. By Greg Banks. Available On Linked In. February 2011.
Demand Driven Marketing. By Greg Banks. Available On Linked In. February 2011.
 
Oficina De Escrita Criativa
Oficina De Escrita CriativaOficina De Escrita Criativa
Oficina De Escrita Criativa
 
AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)
 
Intervento Dott.ssa Pigrucci — Incontro L’università senza carta A Uniurb i p...
Intervento Dott.ssa Pigrucci — Incontro L’università senza carta A Uniurb i p...Intervento Dott.ssa Pigrucci — Incontro L’università senza carta A Uniurb i p...
Intervento Dott.ssa Pigrucci — Incontro L’università senza carta A Uniurb i p...
 
Ballet
BalletBallet
Ballet
 
リファクタリング読書会20120220
リファクタリング読書会20120220リファクタリング読書会20120220
リファクタリング読書会20120220
 
レガシーコード読書会 20120618
レガシーコード読書会 20120618レガシーコード読書会 20120618
レガシーコード読書会 20120618
 

Similar to phpstudy_php_to_node

LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45civic Sasaki
 
from_beginner_to_engineer
from_beginner_to_engineerfrom_beginner_to_engineer
from_beginner_to_engineerYuka Tokuyama
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_opsume3_
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Reportgree_tech
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドkeroyonn
 
ISUCON5 予選をPHPで戦った話
ISUCON5 予選をPHPで戦った話ISUCON5 予選をPHPで戦った話
ISUCON5 予選をPHPで戦った話Suguru Shirai
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Wataru Terada
 
ペアプロはリモートでもできる!
ペアプロはリモートでもできる!ペアプロはリモートでもできる!
ペアプロはリモートでもできる!Tatsuya Deguchi
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱Koichi ITO
 
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~Hikaru Tanaka
 
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?Developers Summit
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことMasakazu Muraoka
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃Teruo Adachi
 
Atnd地域検索作ったよー
Atnd地域検索作ったよーAtnd地域検索作ったよー
Atnd地域検索作ったよーOhishi Mikage
 
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Hironori Sekine
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Hideki Takase
 
これができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedこれができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedTakahiro YAMAGUCHI
 
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)Hiroyuki Yamaoka
 

Similar to phpstudy_php_to_node (20)

LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
 
from_beginner_to_engineer
from_beginner_to_engineerfrom_beginner_to_engineer
from_beginner_to_engineer
 
DevOps Conference #1
DevOps Conference #1DevOps Conference #1
DevOps Conference #1
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
 
ISUCON5 予選をPHPで戦った話
ISUCON5 予選をPHPで戦った話ISUCON5 予選をPHPで戦った話
ISUCON5 予選をPHPで戦った話
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
 
ペアプロはリモートでもできる!
ペアプロはリモートでもできる!ペアプロはリモートでもできる!
ペアプロはリモートでもできる!
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
 
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
 
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
 
Atnd地域検索作ったよー
Atnd地域検索作ったよーAtnd地域検索作ったよー
Atnd地域検索作ったよー
 
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
 
これができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedこれができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejected
 
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
 

phpstudy_php_to_node