@shin1x1
2015/10/03 PHPカンファレンス
いまどきのPHP開発現場
-2015年秋-
開発現場で利用する
ツール、サービスの話です
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PhpStorm
PhpStorm
(c) 2015 Masashi Shinbara @shin1x1
• JetBrains社のIDE(有償)
• 動作が軽快、静的解析、オールインワン
• Vimmerも納得のIdeaVIM
Demo
(c) 2015 Masashi Shinbara @shin1x1
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
Vagrant
Vagrant
(c) 2015 Masashi Shinbara @shin1x1
• プロジェクト毎に独立した環境
• 自動構築
• チームで同じ環境を利用
• 運用環境と同じ環境
導入ポイント
(c) 2015 Masashi Shinbara @shin1x1
• PHP コードと一緒に管理
• とことん自動化(vagrant upで完了)
• プロビジョニングは VM の中で実行
• Shell Script -> ...
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
フレームワーク
フレームワーク
(c) 2015 Masashi Shinbara @shin1x1
• コンポーネント指向が主流
• Symfony / Zend Framework / Aura

CakePHP 3 / Laravel / BEAR.Su...
Laravel
(c) 2015 Masashi Shinbara @shin1x1
• Symfony コンポーネントを多数利用

(独自解釈した Symfony とも言える)
• いいとこ取り
• Laravel もコンポーネントとして利用...
フレームワークの付き合い方
(c) 2015 Masashi Shinbara @shin1x1
• フレームワークに従うのではなく

アプリケーションの部品として使う
• フレームワーク on フレームワーク
• インハウスフレームワーク
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
CI
(継続的インテグレーション)
CIサーバ、サービス
(c) 2015 Masashi Shinbara @shin1x1
• git push / PR を検知してタスクを自動実行
• テスト実行、フォーマットチェック、静的解析
• 自前なら、Jenkins
• SaaSな...
Travis CI
(c) 2015 Masashi Shinbara @shin1x1
https://travis-ci.org/
Travis CI
(c) 2015 Masashi Shinbara @shin1x1
https://travis-ci.org/
• GitHub と連携
• git push / PR を検知して実行
• .travis.yml に実行...
.travis.yml
language: php

sudo: false



php:

- 5.6



before_script:

- composer self-update

- cp .env.example .env

-...
.travis.yml
language: php

sudo: false



php:

- 5.6



before_script:

- composer self-update

- cp .env.example .env

-...
.travis.yml
language: php

sudo: false



php:

- 5.6



before_script:

- composer self-update

- cp .env.example .env

-...
.travis.yml
language: php

sudo: false



php:

- 5.6



before_script:

- composer self-update

- cp .env.example .env

-...
Scrutinizer
(c) 2015 Masashi Shinbara @shin1x1
https://scrutinizer-ci.com/
Scrutinizer
(c) 2015 Masashi Shinbara @shin1x1
https://scrutinizer-ci.com/
• コードフォーマットや静的解析のSaaS
• 指摘表示
• 有償ならテスト実行も可
• Tr...
Scrutinizer
(c) 2015 Masashi Shinbara @shin1x1
指摘事項
GitHub issue に登録
Scrutinizer
(c) 2015 Masashi Shinbara @shin1x1
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PaaS
(Heroku)
PaaS
(c) 2015 Masashi Shinbara @shin1x1
• Platform as a Service
• Herokuが、PHP を正式サポート(2014)
• Azure WebApps(国内リージョンあり)
PaaS
(c) 2015 Masashi Shinbara @shin1x1
• サーバセットアップは自動

(あらかじめ決まったセットを利用)
• Git でデプロイして、すぐに使える
• サーバメンテナンスが不要
Heroku
(c) 2015 Masashi Shinbara @shin1x1
https://www.heroku.com/
Heroku
(c) 2015 Masashi Shinbara @shin1x1
https://www.heroku.com/
• PHP 5.5 / 5.6 / 7(RC4) / HHVM
• PHP 拡張や httpd サーバ、設定が可...
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
SaaS
(Rollbar)
SaaS
(c) 2015 Masashi Shinbara @shin1x1
• エラートラッカー: Rollbar
• DNS: Amazon Route53
• メール: Amazon SES / SendGrid
• DB: Amazo...
Rollbar
(c) 2015 Masashi Shinbara @shin1x1
• 発生した例外やエラーを蓄積
• アラート、サマリー
• 例外が発生したリクエスト、

スタックトレースを記録
• 無料枠あり
まとめ
ツールやサービスに任せる
やるべきことに集中
ツールに導かれる
@shin1x1
(c) 2015 Masashi Shinbara @shin1x1
Q?
Upcoming SlideShare
Loading in...5
×

いまどきのPHP開発現場 -2015年秋-

0

Published on

2015/10/03 PHPカンファレンス2015

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

  • Be the first to like this

No Downloads
Views
Total Views
0
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

いまどきのPHP開発現場 -2015年秋-

  1. 1.  @shin1x1 2015/10/03 PHPカンファレンス いまどきのPHP開発現場 -2015年秋-
  2. 2. 開発現場で利用する ツール、サービスの話です
  3. 3. (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア PHP開発の現場
  4. 4. PHP開発の現場 (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア PhpStorm
  5. 5. PhpStorm (c) 2015 Masashi Shinbara @shin1x1 • JetBrains社のIDE(有償) • 動作が軽快、静的解析、オールインワン • Vimmerも納得のIdeaVIM
  6. 6. Demo (c) 2015 Masashi Shinbara @shin1x1
  7. 7. (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア PHP開発の現場
  8. 8. PHP開発の現場 (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア Vagrant
  9. 9. Vagrant (c) 2015 Masashi Shinbara @shin1x1 • プロジェクト毎に独立した環境 • 自動構築 • チームで同じ環境を利用 • 運用環境と同じ環境
  10. 10. 導入ポイント (c) 2015 Masashi Shinbara @shin1x1 • PHP コードと一緒に管理 • とことん自動化(vagrant upで完了) • プロビジョニングは VM の中で実行 • Shell Script -> Ansible が楽
  11. 11. (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア PHP開発の現場
  12. 12. PHP開発の現場 (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア フレームワーク
  13. 13. フレームワーク (c) 2015 Masashi Shinbara @shin1x1 • コンポーネント指向が主流 • Symfony / Zend Framework / Aura
 CakePHP 3 / Laravel / BEAR.Sunday • コンポーネントを分離して利用できる • 他のフレームワークのコンポーネントを利用
  14. 14. Laravel (c) 2015 Masashi Shinbara @shin1x1 • Symfony コンポーネントを多数利用
 (独自解釈した Symfony とも言える) • いいとこ取り • Laravel もコンポーネントとして利用可能
  15. 15. フレームワークの付き合い方 (c) 2015 Masashi Shinbara @shin1x1 • フレームワークに従うのではなく
 アプリケーションの部品として使う • フレームワーク on フレームワーク • インハウスフレームワーク
  16. 16. (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア PHP開発の現場
  17. 17. PHP開発の現場 (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア CI (継続的インテグレーション)
  18. 18. CIサーバ、サービス (c) 2015 Masashi Shinbara @shin1x1 • git push / PR を検知してタスクを自動実行 • テスト実行、フォーマットチェック、静的解析 • 自前なら、Jenkins • SaaSなら、Travis CI / Circle CI
  19. 19. Travis CI (c) 2015 Masashi Shinbara @shin1x1 https://travis-ci.org/
  20. 20. Travis CI (c) 2015 Masashi Shinbara @shin1x1 https://travis-ci.org/ • GitHub と連携 • git push / PR を検知して実行 • .travis.yml に実行内容を指定 • sudo が実行できる(何でもできる)
  21. 21. .travis.yml language: php
 sudo: false
 
 php:
 - 5.6
 
 before_script:
 - composer self-update
 - cp .env.example .env
 - mysql -uroot -e "CREATE DATABASE app_test;"
 - mysql -uroot -e "GRANT ALL PRIVILEGES ON app_test.* TO vagrant@localhost IDENTIFIED BY 'pass';"
 
 script:
 - composer install --prefer-source --no-interaction --dev
 - php artisan key:generate
 - ./vendor/bin/phpunit
  22. 22. .travis.yml language: php
 sudo: false
 
 php:
 - 5.6
 
 before_script:
 - composer self-update
 - cp .env.example .env
 - mysql -uroot -e "CREATE DATABASE app_test;"
 - mysql -uroot -e "GRANT ALL PRIVILEGES ON app_test.* TO vagrant@localhost IDENTIFIED BY 'pass';"
 
 script:
 - composer install --prefer-source --no-interaction --dev
 - php artisan key:generate
 - ./vendor/bin/phpunit
  23. 23. .travis.yml language: php
 sudo: false
 
 php:
 - 5.6
 
 before_script:
 - composer self-update
 - cp .env.example .env
 - mysql -uroot -e "CREATE DATABASE app_test;"
 - mysql -uroot -e "GRANT ALL PRIVILEGES ON app_test.* TO vagrant@localhost IDENTIFIED BY 'pass';"
 
 script:
 - composer install --prefer-source --no-interaction --dev
 - php artisan key:generate
 - ./vendor/bin/phpunit
  24. 24. .travis.yml language: php
 sudo: false
 
 php:
 - 5.6
 
 before_script:
 - composer self-update
 - cp .env.example .env
 - mysql -uroot -e "CREATE DATABASE app_test;"
 - mysql -uroot -e "GRANT ALL PRIVILEGES ON app_test.* TO vagrant@localhost IDENTIFIED BY 'pass';"
 
 script:
 - composer install --prefer-source --no-interaction --dev
 - php artisan key:generate
 - ./vendor/bin/phpunit
  25. 25. Scrutinizer (c) 2015 Masashi Shinbara @shin1x1 https://scrutinizer-ci.com/
  26. 26. Scrutinizer (c) 2015 Masashi Shinbara @shin1x1 https://scrutinizer-ci.com/ • コードフォーマットや静的解析のSaaS • 指摘表示 • 有償ならテスト実行も可 • Travis CI などと組み合わせる
  27. 27. Scrutinizer (c) 2015 Masashi Shinbara @shin1x1 指摘事項 GitHub issue に登録
  28. 28. Scrutinizer (c) 2015 Masashi Shinbara @shin1x1
  29. 29. (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア PHP開発の現場
  30. 30. PHP開発の現場 (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア PaaS (Heroku)
  31. 31. PaaS (c) 2015 Masashi Shinbara @shin1x1 • Platform as a Service • Herokuが、PHP を正式サポート(2014) • Azure WebApps(国内リージョンあり)
  32. 32. PaaS (c) 2015 Masashi Shinbara @shin1x1 • サーバセットアップは自動
 (あらかじめ決まったセットを利用) • Git でデプロイして、すぐに使える • サーバメンテナンスが不要
  33. 33. Heroku (c) 2015 Masashi Shinbara @shin1x1 https://www.heroku.com/
  34. 34. Heroku (c) 2015 Masashi Shinbara @shin1x1 https://www.heroku.com/ • PHP 5.5 / 5.6 / 7(RC4) / HHVM • PHP 拡張や httpd サーバ、設定が可能 • 無料枠あり(検証環境にも便利) • アドオンが豊富
  35. 35. (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア PHP開発の現場
  36. 36. PHP開発の現場 (c) 2015 Masashi Shinbara @shin1x1 git push / PR 図図 - エンジニアエンジニア SaaS (Rollbar)
  37. 37. SaaS (c) 2015 Masashi Shinbara @shin1x1 • エラートラッカー: Rollbar • DNS: Amazon Route53 • メール: Amazon SES / SendGrid • DB: Amazon RDS / Heroku Postgres • 電話/SMS: Twilio
  38. 38. Rollbar (c) 2015 Masashi Shinbara @shin1x1 • 発生した例外やエラーを蓄積 • アラート、サマリー • 例外が発生したリクエスト、
 スタックトレースを記録 • 無料枠あり
  39. 39. まとめ
  40. 40. ツールやサービスに任せる やるべきことに集中
  41. 41. ツールに導かれる
  42. 42. @shin1x1 (c) 2015 Masashi Shinbara @shin1x1 Q?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×