Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

56.838 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

いまどきの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?

×