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

42
@shin1x1 2015/10/03 PHPカンファレンス いまどきのPHP開発現場 -2015年秋-

Upload: masashi-shinbara

Post on 15-Apr-2017

54.452 views

Category:

Technology


0 download

TRANSCRIPT

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

 @shin1x1

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

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

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

開発現場で利用する ツール、サービスの話です

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

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

PHP開発の現場

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

PHP開発の現場

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

PhpStorm

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

PhpStorm

(c) 2015 Masashi Shinbara @shin1x1

• JetBrains社のIDE(有償) • 動作が軽快、静的解析、オールインワン • Vimmerも納得のIdeaVIM

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

Demo

(c) 2015 Masashi Shinbara @shin1x1

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

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

PHP開発の現場

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

PHP開発の現場

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

Vagrant

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

Vagrant

(c) 2015 Masashi Shinbara @shin1x1

• プロジェクト毎に独立した環境 • 自動構築 • チームで同じ環境を利用 • 運用環境と同じ環境

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

導入ポイント

(c) 2015 Masashi Shinbara @shin1x1

• PHP コードと一緒に管理 • とことん自動化(vagrant upで完了) • プロビジョニングは VM の中で実行 • Shell Script -> Ansible が楽

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

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

PHP開発の現場

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

PHP開発の現場

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

フレームワーク

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

フレームワーク

(c) 2015 Masashi Shinbara @shin1x1

• コンポーネント指向が主流 • Symfony / Zend Framework / Aura CakePHP 3 / Laravel / BEAR.Sunday

• コンポーネントを分離して利用できる • 他のフレームワークのコンポーネントを利用

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

Laravel

(c) 2015 Masashi Shinbara @shin1x1

• Symfony コンポーネントを多数利用 (独自解釈した Symfony とも言える)

• いいとこ取り • Laravel もコンポーネントとして利用可能

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

フレームワークの付き合い方

(c) 2015 Masashi Shinbara @shin1x1

• フレームワークに従うのではなく アプリケーションの部品として使う

• フレームワーク on フレームワーク • インハウスフレームワーク

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

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

PHP開発の現場

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

PHP開発の現場

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア CI (継続的インテグレーション)

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

CIサーバ、サービス

(c) 2015 Masashi Shinbara @shin1x1

• git push / PR を検知してタスクを自動実行 • テスト実行、フォーマットチェック、静的解析 • 自前なら、Jenkins • SaaSなら、Travis CI / Circle CI

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

Travis CI

(c) 2015 Masashi Shinbara @shin1x1

https://travis-ci.org/

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

Travis CI

(c) 2015 Masashi Shinbara @shin1x1

https://travis-ci.org/

• GitHub と連携 • git push / PR を検知して実行 • .travis.yml に実行内容を指定 • sudo が実行できる(何でもできる)

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

.travis.yml

language: phpsudo: falsephp: - 5.6before_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

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

.travis.yml

language: phpsudo: falsephp: - 5.6before_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

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

.travis.yml

language: phpsudo: falsephp: - 5.6before_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

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

.travis.yml

language: phpsudo: falsephp: - 5.6before_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

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

Scrutinizer

(c) 2015 Masashi Shinbara @shin1x1

https://scrutinizer-ci.com/

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

Scrutinizer

(c) 2015 Masashi Shinbara @shin1x1

https://scrutinizer-ci.com/

• コードフォーマットや静的解析のSaaS • 指摘表示 • 有償ならテスト実行も可 • Travis CI などと組み合わせる

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

Scrutinizer

(c) 2015 Masashi Shinbara @shin1x1

指摘事項

GitHub issue に登録

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

Scrutinizer

(c) 2015 Masashi Shinbara @shin1x1

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

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

PHP開発の現場

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

PHP開発の現場

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

PaaS (Heroku)

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

PaaS

(c) 2015 Masashi Shinbara @shin1x1

• Platform as a Service • Herokuが、PHP を正式サポート(2014) • Azure WebApps(国内リージョンあり)

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

PaaS

(c) 2015 Masashi Shinbara @shin1x1

• サーバセットアップは自動 (あらかじめ決まったセットを利用)

• Git でデプロイして、すぐに使える • サーバメンテナンスが不要

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

Heroku

(c) 2015 Masashi Shinbara @shin1x1

https://www.heroku.com/

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

Heroku

(c) 2015 Masashi Shinbara @shin1x1

https://www.heroku.com/

• PHP 5.5 / 5.6 / 7(RC4) / HHVM • PHP 拡張や httpd サーバ、設定が可能 • 無料枠あり(検証環境にも便利) • アドオンが豊富

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

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

PHP開発の現場

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

PHP開発の現場

(c) 2015 Masashi Shinbara @shin1x1

git push / PR

図図 - エンジニアエンジニア

SaaS (Rollbar)

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

SaaS

(c) 2015 Masashi Shinbara @shin1x1

• エラートラッカー: Rollbar • DNS: Amazon Route53 • メール: Amazon SES / SendGrid • DB: Amazon RDS / Heroku Postgres • 電話/SMS: Twilio

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

Rollbar

(c) 2015 Masashi Shinbara @shin1x1

• 発生した例外やエラーを蓄積 • アラート、サマリー • 例外が発生したリクエスト、 スタックトレースを記録

• 無料枠あり

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

まとめ

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

ツールやサービスに任せる やるべきことに集中

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

ツールに導かれる

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

@shin1x1

(c) 2015 Masashi Shinbara @shin1x1

Q?