Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Hack言語に賭けた
チームの話
2015/10/03@PHPカンファレンス
株式会社インテリジェンス
大谷 祐司
1
2
・山口県下関出身の35歳。
・インテリジェンスの「MIIDAS」開発責任者。
・企画からアプリ、インフラまで幅広く担当。
・趣味は車とプログラミング。
・土日は育児しながら勉強中。
自己紹介
3
5年 7年
10ヶ月
→ →
メイン開発言語の経歴
4
7月にリリースした転職サイトで、
社内で初めてHackを採用しました。
チームにとっては大きな「賭け」でした・・
5
会場の皆さんに質問です。
6
質問①
Hack言語を知っているかた
7
質問②
Hackを実際に触ったことがあるかた
8
Hackとは?
9
・Facebookによって開発された言語。
・PHPと互換性を持っている。
・HHVMという仮想マシン上で動作する。
Hackとは?
10
Hackについて最近言われること
11
Hackは去年話題になったが、とっくに
下火で進化も止まっている。
12
Hackは単純に
「パフォーマンスの高いPHP」である。
13
PHPフレームワークやライブラリが使えず
開発に大きなコストがかかる。
14
某CTOから言われたこと
15
Hackを本番環境で使うなんて
クレイジーだぜ!!
16
結論:全部誤解です。
詳しくは本日の内容でお伝えします。
17
Hack言語の歴史
18
2014年 FacebookによりHack言語が発表される
・HHVM上で動作する、PHPと互換のある言語
・Facebook本体のコードはほとんどHackに移行済
・PHP5.5をベースに仕様追加/削除を行う
・バグのないコードを迅速に書けるようになる
・エンジニアがコーディング体験を楽しめる
・「高速な動作」「大規模開発向きの仕様」
Hackの特徴
継続したバージョンアップ(8週間のサイクル)
サポートについて
→LTSを約1年間サポート。
・並列化処理の各種機能
・型チェッカーの機能拡張
・トランスレーション・キャッシュのメモリ改善
・処理の高速化
最近のリリースにおける進化
23
Hackは去年話題になったが、とっくに
下火で進化も止まっている。
すごいスピードで進化を続けています。
24
Hack/HHVMの採用実績
25
採用実績
https://github.com/facebook/hhvm/wiki/Users
26
http://hhvm.com/blog/7205/wikipedia-on-hhvm
Wikipediaを編集する際の速度が2倍に!!
27
https://www.box.com/blog/going-forward-faster-hhvm/
Webレスポンスを1/3に短縮!!
28
http://wpengine.com/2014/11/19/hhvm-project-mercury/
レスポンスのパフォーマンスが5.6倍に!!
29
Hack/HHVMはとても優れた
パフォーマンスを発揮します。
30
Hack言語の特徴
31
PHPは良くも悪くも汎用的に使える
緩い言語仕様が特徴です。
HackはFacebookによる仕様追加
→「大規模サービス開発」向けの言語に。
32
引数/戻り値の型指定
33
Generics
34
Hack独自の配列
Map / Vector / Set / Pair
・格納する値に型の指定が可能。
(MAPはキーの型も指定可能)
・Getメソッドを利用することで、issetなし
で値を取り出せる。
35
Map
キーと値をセットで格納。
B
A
D
EC
36
Vector
順番に値を保持する純粋な配列。
21 4 53
37
Set
値の集合で、中身の重複が認められない。
BA D EC
38
Pair
2つの値をセットにして保持。
39
Enum
値を列挙することができる。
40
Hack非推奨の構文
and, or, endforeach, goto, globals, break N
などを非推奨にしています。
PHPソース中にHTMLを書くのもNGです。
41
並列実行
async, awaitという関数を使用して、
並列実行を行うことができます。
42
hh_client
実行前に構文チェックを行えます。
・コンパイルエラー
・引数/戻り値の型チェック
・非推奨の構文
・型の不適切な変換
etc
43
Hackは単純に
「パフォーマンスの良いPHP」である。
大規模開発に耐えられるように、
多くの独自の拡張がなされています。
44
Hackでサービスをリリースするまで。
OS :CentOS7
Webサーバ :nginx1.9
DB :MariaDB10.0
インフラ管理 :Ansible
Web開発言語 :Hack(hhvm3.7)
フレームワーク :FuelPHP1.7
バッチ開発言語 :Go言語
採用して...
46
・PHPのノウハウを生かしながら、新しいこと
にチャレンジしたい。
・パフォーマンスが良いサービスにしたい。
・将来的に大規模になった時にも可読性がよく、
スピーディーな改修ができるようにしたい。
・PHP7がまだリリースされないので。
...
47
・最悪ダメだったらPHPに戻す。
・「前例が無いからチャレンジしてみよう」
・英語ネイティブのメンバーがいるから大丈夫。
・PHP7ではなくHackが流行る未来をイメージ。
採用における覚悟
48
・公式のチュートリアル
http://hacklang.org/tutorial
・仕様の読み込み
https://github.com/hhvm/hack-
langspec/blob/master/spec/00-specificat...
49
・hhvmが落ちる→監視して自動で再起動。
・peclが利用できない→golangでextension記述。
・突然のCentOS6サポート停止→CentOS7へ移行。
・コードフォーマッターが使えない。
問題点
50
ググラビリティが非常に低い。
問題点
51
Codeigniter:100%
Laravel:100%
CakePHP3:99.65%
Yii:99.78%
HHVMで動作するフレームワーク
http://hhvm.com/frameworks/
フレームワークの対応状況が公開され...
52
・社内で採用実績が豊富。
・標準のライブラリが充実。
・PHP5.3以上推奨でHHVMと相性が良さそう。
FuelPHPを採用した理由
53
・DBアクセス部分に若干のコードを追加。
・テンプレートエンジンはSmartyを使用。
・index.php→index.hhに名前変更して
<?hhで開始する。
・ほぼ問題なく利用できています。
FuelPHP採用において
http:/...
54
開発ルールの統一
・定数はenumで作成。
・Arrayではなく、Vector/Mapの積極的な利用。
・タイプヒンティングは必ずつける。
・hh_clientでコミット前の構文チェック実行。
記述の統一化、可読性のUPを実現
55
セキュリティ
Dell Secure Works社のセキュリティ監査を実施。
(インフラ/アプリケーション)
Hack/hhvmに起因するリスクはゼロでした。
56
使ってみての感想
・PHP経験のあるメンバーが早期に習得。
・「新しいチャレンジ」のワクワク感。
・メンバーのプログラミングスキル幅が広がる。
・「PHP以外の言語」への理解が深まる。
Hackを採用してとても良かったです。
57
PHPフレームワークやライブラリが使えず、
開発に大きなコストがかかる。
PHPで培った資産を活かしながら、
様々なメリットを活用できる。
58
まとめ
59
Hackは去年話題になったが、とっくに
下火で進化も止まっている。
すごいスピードで進化を続けています。
60
Hackは単純に
「パフォーマンスの良いPHP」である。
大規模開発に耐えられるように、
多くの独自の拡張がなされています。
61
PHPフレームワークやライブラリが使えず、
開発に大きなコストがかかる。
PHPで培った資産を活かしながら、
様々なメリットを活用できる。
62
結論
Hackはとてもホットな言語です。
皆さんもぜひ試してみてください!
63
Hack言語に出会って、PHPの今後に大きな
可能性を感じました。
PHP7のリリースも控えており、PHPのこれ
からがとても楽しみです!
64
インテリジェンスでは、Hack言語を採用したプロ
ジェクトがいくつか立ち上がっています。
エンジニアを募集していますので、興味ある方は
お声がけください!
ご静聴ありがとうございました。
Upcoming SlideShare
Loading in …5
×

Hack言語に賭けたチームの話

2,400 views

Published on

PHPカンファレンス2015の発表内容です。

Published in: Technology
  • Be the first to comment

Hack言語に賭けたチームの話

  1. 1. Hack言語に賭けた チームの話 2015/10/03@PHPカンファレンス 株式会社インテリジェンス 大谷 祐司 1
  2. 2. 2 ・山口県下関出身の35歳。 ・インテリジェンスの「MIIDAS」開発責任者。 ・企画からアプリ、インフラまで幅広く担当。 ・趣味は車とプログラミング。 ・土日は育児しながら勉強中。 自己紹介
  3. 3. 3 5年 7年 10ヶ月 → → メイン開発言語の経歴
  4. 4. 4 7月にリリースした転職サイトで、 社内で初めてHackを採用しました。 チームにとっては大きな「賭け」でした・・
  5. 5. 5 会場の皆さんに質問です。
  6. 6. 6 質問① Hack言語を知っているかた
  7. 7. 7 質問② Hackを実際に触ったことがあるかた
  8. 8. 8 Hackとは?
  9. 9. 9 ・Facebookによって開発された言語。 ・PHPと互換性を持っている。 ・HHVMという仮想マシン上で動作する。 Hackとは?
  10. 10. 10 Hackについて最近言われること
  11. 11. 11 Hackは去年話題になったが、とっくに 下火で進化も止まっている。
  12. 12. 12 Hackは単純に 「パフォーマンスの高いPHP」である。
  13. 13. 13 PHPフレームワークやライブラリが使えず 開発に大きなコストがかかる。
  14. 14. 14 某CTOから言われたこと
  15. 15. 15 Hackを本番環境で使うなんて クレイジーだぜ!!
  16. 16. 16 結論:全部誤解です。 詳しくは本日の内容でお伝えします。
  17. 17. 17 Hack言語の歴史
  18. 18. 18 2014年 FacebookによりHack言語が発表される ・HHVM上で動作する、PHPと互換のある言語 ・Facebook本体のコードはほとんどHackに移行済 ・PHP5.5をベースに仕様追加/削除を行う
  19. 19. ・バグのないコードを迅速に書けるようになる ・エンジニアがコーディング体験を楽しめる ・「高速な動作」「大規模開発向きの仕様」 Hackの特徴
  20. 20. 継続したバージョンアップ(8週間のサイクル)
  21. 21. サポートについて →LTSを約1年間サポート。
  22. 22. ・並列化処理の各種機能 ・型チェッカーの機能拡張 ・トランスレーション・キャッシュのメモリ改善 ・処理の高速化 最近のリリースにおける進化
  23. 23. 23 Hackは去年話題になったが、とっくに 下火で進化も止まっている。 すごいスピードで進化を続けています。
  24. 24. 24 Hack/HHVMの採用実績
  25. 25. 25 採用実績 https://github.com/facebook/hhvm/wiki/Users
  26. 26. 26 http://hhvm.com/blog/7205/wikipedia-on-hhvm Wikipediaを編集する際の速度が2倍に!!
  27. 27. 27 https://www.box.com/blog/going-forward-faster-hhvm/ Webレスポンスを1/3に短縮!!
  28. 28. 28 http://wpengine.com/2014/11/19/hhvm-project-mercury/ レスポンスのパフォーマンスが5.6倍に!!
  29. 29. 29 Hack/HHVMはとても優れた パフォーマンスを発揮します。
  30. 30. 30 Hack言語の特徴
  31. 31. 31 PHPは良くも悪くも汎用的に使える 緩い言語仕様が特徴です。 HackはFacebookによる仕様追加 →「大規模サービス開発」向けの言語に。
  32. 32. 32 引数/戻り値の型指定
  33. 33. 33 Generics
  34. 34. 34 Hack独自の配列 Map / Vector / Set / Pair ・格納する値に型の指定が可能。 (MAPはキーの型も指定可能) ・Getメソッドを利用することで、issetなし で値を取り出せる。
  35. 35. 35 Map キーと値をセットで格納。 B A D EC
  36. 36. 36 Vector 順番に値を保持する純粋な配列。 21 4 53
  37. 37. 37 Set 値の集合で、中身の重複が認められない。 BA D EC
  38. 38. 38 Pair 2つの値をセットにして保持。
  39. 39. 39 Enum 値を列挙することができる。
  40. 40. 40 Hack非推奨の構文 and, or, endforeach, goto, globals, break N などを非推奨にしています。 PHPソース中にHTMLを書くのもNGです。
  41. 41. 41 並列実行 async, awaitという関数を使用して、 並列実行を行うことができます。
  42. 42. 42 hh_client 実行前に構文チェックを行えます。 ・コンパイルエラー ・引数/戻り値の型チェック ・非推奨の構文 ・型の不適切な変換 etc
  43. 43. 43 Hackは単純に 「パフォーマンスの良いPHP」である。 大規模開発に耐えられるように、 多くの独自の拡張がなされています。
  44. 44. 44 Hackでサービスをリリースするまで。
  45. 45. OS :CentOS7 Webサーバ :nginx1.9 DB :MariaDB10.0 インフラ管理 :Ansible Web開発言語 :Hack(hhvm3.7) フレームワーク :FuelPHP1.7 バッチ開発言語 :Go言語 採用している技術 45
  46. 46. 46 ・PHPのノウハウを生かしながら、新しいこと にチャレンジしたい。 ・パフォーマンスが良いサービスにしたい。 ・将来的に大規模になった時にも可読性がよく、 スピーディーな改修ができるようにしたい。 ・PHP7がまだリリースされないので。 新規サービスでHack言語を採用
  47. 47. 47 ・最悪ダメだったらPHPに戻す。 ・「前例が無いからチャレンジしてみよう」 ・英語ネイティブのメンバーがいるから大丈夫。 ・PHP7ではなくHackが流行る未来をイメージ。 採用における覚悟
  48. 48. 48 ・公式のチュートリアル http://hacklang.org/tutorial ・仕様の読み込み https://github.com/hhvm/hack- langspec/blob/master/spec/00-specification-for- hack.md どうやって学習したか
  49. 49. 49 ・hhvmが落ちる→監視して自動で再起動。 ・peclが利用できない→golangでextension記述。 ・突然のCentOS6サポート停止→CentOS7へ移行。 ・コードフォーマッターが使えない。 問題点
  50. 50. 50 ググラビリティが非常に低い。 問題点
  51. 51. 51 Codeigniter:100% Laravel:100% CakePHP3:99.65% Yii:99.78% HHVMで動作するフレームワーク http://hhvm.com/frameworks/ フレームワークの対応状況が公開されています。 現在27種が100%対応済みです。
  52. 52. 52 ・社内で採用実績が豊富。 ・標準のライブラリが充実。 ・PHP5.3以上推奨でHHVMと相性が良さそう。 FuelPHPを採用した理由
  53. 53. 53 ・DBアクセス部分に若干のコードを追加。 ・テンプレートエンジンはSmartyを使用。 ・index.php→index.hhに名前変更して <?hhで開始する。 ・ほぼ問題なく利用できています。 FuelPHP採用において http://hhvm.com/frameworks/
  54. 54. 54 開発ルールの統一 ・定数はenumで作成。 ・Arrayではなく、Vector/Mapの積極的な利用。 ・タイプヒンティングは必ずつける。 ・hh_clientでコミット前の構文チェック実行。 記述の統一化、可読性のUPを実現
  55. 55. 55 セキュリティ Dell Secure Works社のセキュリティ監査を実施。 (インフラ/アプリケーション) Hack/hhvmに起因するリスクはゼロでした。
  56. 56. 56 使ってみての感想 ・PHP経験のあるメンバーが早期に習得。 ・「新しいチャレンジ」のワクワク感。 ・メンバーのプログラミングスキル幅が広がる。 ・「PHP以外の言語」への理解が深まる。 Hackを採用してとても良かったです。
  57. 57. 57 PHPフレームワークやライブラリが使えず、 開発に大きなコストがかかる。 PHPで培った資産を活かしながら、 様々なメリットを活用できる。
  58. 58. 58 まとめ
  59. 59. 59 Hackは去年話題になったが、とっくに 下火で進化も止まっている。 すごいスピードで進化を続けています。
  60. 60. 60 Hackは単純に 「パフォーマンスの良いPHP」である。 大規模開発に耐えられるように、 多くの独自の拡張がなされています。
  61. 61. 61 PHPフレームワークやライブラリが使えず、 開発に大きなコストがかかる。 PHPで培った資産を活かしながら、 様々なメリットを活用できる。
  62. 62. 62 結論 Hackはとてもホットな言語です。 皆さんもぜひ試してみてください!
  63. 63. 63 Hack言語に出会って、PHPの今後に大きな 可能性を感じました。 PHP7のリリースも控えており、PHPのこれ からがとても楽しみです!
  64. 64. 64 インテリジェンスでは、Hack言語を採用したプロ ジェクトがいくつか立ち上がっています。 エンジニアを募集していますので、興味ある方は お声がけください!
  65. 65. ご静聴ありがとうございました。

×