FuelPHP × HHVM サービス開発事例

276

Published on

2015/10/25 FuelPHP&CodeIgniter ユーザの集い #9での発表資料です。

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

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

No notes for slide

FuelPHP × HHVM サービス開発事例

  1. 1. FuelPHP × HHVM サービス開発事例 2015/10/19 株式会社インテリジェンス 大谷 祐司 1
  2. 2. 2 ・山口県下関出身の35歳。 ・インテリジェンスの「MIIDAS」開発責任者。 ・企画からアプリ、インフラまで幅広く担当。 ・趣味は車とプログラミング。 ・ビジュアル系バンドやってました。 自己紹介
  3. 3. 3 5年 7年 10ヶ月 → → メイン開発言語の経歴
  4. 4. 今日のテーマ FuelPHP × HHVMサービス開発事例
  5. 5. 5 7月にリリースした転職サイトを、 FuelPHP × HHVM(Hack)で構築しました。
  6. 6. 6 HHVM/Hackについて 簡単に説明
  7. 7. 7 ・HipHop Virtual Machineの略 ・高速なPHP実行環境。 ・Facebookによって開発された。 ・HackというPHP拡張言語が実行できる。 HHVMとは?
  8. 8. 8 ・HHVM上で動作する、PHPと互換のある言語 ・2014年にFacebookによって公開 ・Facebook本体のコードはほとんどHackに移行済 ・PHP5.6をベースに機能追加/削除されている Hackとは?
  9. 9. ・バグのないコードを迅速に書けるようになる ・エンジニアがコーディング体験を楽しめる ・「高速な動作」「大規模開発向きの仕様」 Hack言語の特徴
  10. 10. 10 ・配列(Map/Vector/Set/Pair) ・Enum ・Generics ・タイプヒンティング(NULL許可の指定) ・hh_client(静的コード解析) 独自に拡張された機能
  11. 11. 11 and, or, endforeach, goto, globals, break N などを非推奨にしています。 PHPソース中にHTMLを書くのもNGです。 Hack非推奨の構文
  12. 12. 継続したバージョンアップ(8週間のサイクル)
  13. 13. サポートについて →LTSを約1年間サポート。
  14. 14. 14 Codeigniter:100% Laravel:100% CakePHP3:99.65% Yii:99.78% HHVMで動作するフレームワーク http://hhvm.com/frameworks/ フレームワークの対応状況が公開されています。 現在27種が100%対応済みです。
  15. 15. 15 サービスのリリースまで
  16. 16. OS :CentOS7 Webサーバ :nginx1.9 DB :MariaDB10.0 インフラ管理 :Ansible Web開発言語 :Hack(hhvm3.7) フレームワーク :FuelPHP1.7 バッチ開発言語 :Go言語 採用している技術 16
  17. 17. 17 ・PHPのノウハウを生かしながら、新しいこと にチャレンジしたい。 ・パフォーマンスが良いサービスにしたい。 ・将来的に大規模になった時にも可読性がよく、 スピーディーな改修ができるようにしたい。 ・PHP7がまだリリースされないので。 新規サービスでHack言語を採用
  18. 18. 18 ・最悪ダメだったらPHPに戻す。 ・「前例が無いからチャレンジしてみよう」 ・英語ネイティブのメンバーがいるから大丈夫。 ・PHP7ではなくHackが流行る未来をイメージ。 採用における覚悟
  19. 19. 19 ・社内で採用実績が豊富。 ・標準のライブラリが充実。 ・PHP5.3以上推奨でHHVMと相性が良さそう。 FuelPHPを採用した理由
  20. 20. 20 ・フレームワークはPHPのまま動かす。 ・アプリケーションをHackで記述。 ・テンプレートエンジンはSmartyを使用。 ・index.php→index.hhに名前変更して <?hhで開始する。 ・FuelPHPのDBアクセス部分を若干修正。 FuelPHP採用において http://hhvm.com/frameworks/
  21. 21. 21 改修ポイント① fuel/core/classes/database/connection.php カスタムSQLを実行する場合、 `object` が渡ってくるが `string` にしか対応していない箇所を修正 FuelPHPを動かすために
  22. 22. 22 改修ポイント② fuel/core/classes/database/query/builder.php 引数のクラス指定部分をコメントアウト FuelPHPを動かすために
  23. 23. 23 開発ルールの統一 ・定数はenumで作成。 ・Arrayではなく、Vector/Mapの積極的な利用。 ・タイプヒンティングは必ずつける。 ・hh_clientでコミット前の構文チェック実行。 記述の統一化、可読性のUPを実現
  24. 24. 24 セキュリティ Dell Secure Works社のセキュリティ監査を実施。 (インフラ/アプリケーション) Hack/Hhvmに起因するリスクはゼロでした。
  25. 25. 25 ・公式のチュートリアル http://hacklang.org/tutorial ・仕様の読み込み https://github.com/hhvm/hack- langspec/blob/master/spec/00-specification-for- hack.md どうやって学習したか
  26. 26. 26 ・hhvmが落ちる→監視して自動で再起動。 ・peclが利用できない→golangでextension記述。 ・突然のCentOS6サポート停止→CentOS7へ移行。 ・フォーマッターが使えない(phpfmt/php.toolsを改造) 問題点
  27. 27. 27 ググラビリティが非常に低い。 問題点
  28. 28. 28 使ってみての感想 ・PHP経験のあるメンバーが早期に習得。 ・「新しいチャレンジ」のワクワク感。 ・メンバーのプログラミングスキル幅が広がる。 ・「PHP以外の言語」への理解が深まる。 Hackを採用してとても良かったです。
  29. 29. 29 おまけ:その他やっていること FuelPHPのRedisクラスを拡張してCluster対応 →Redis3.0から実装された新機能。 複数台のサーバで分割してデータを保持。
  30. 30. FuelPHPをHHVMで動かすことで 便利なHack言語を利用できます。 これから言語選定をされる際、 選択肢に入れてみてはいかがでしょうか。
  31. 31. 31 Hack言語に出会って、PHPの今後に大きな 可能性を感じました。 PHP7のリリースも控えており、PHPのこれ からがとても楽しみです!
  32. 32. 32 インテリジェンスでは、Hack言語を採用したプロ ジェクトがいくつか立ち上がっています。 エンジニアを募集していますので、興味ある方は お声がけください!
  33. 33. ご静聴ありがとうございました。
  1. A particular slide catching your eye?

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

×