Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHPerと就活

usuyuki
July 18, 2022
830

 PHPerと就活

usuyuki

July 18, 2022
Tweet

Transcript

  1. PHPer
    宇都宮大学 工学部 3年
    うすゆき

    View full-size slide

  2. 2022/7/18 2/66
    基本情報
    CV:xxxx
    PHPer
    宇都宮大学生
    VTuberにハマってます。
    usuyuki26
    Usuyuki
    Usuyuki
    usuyuki
    usuyuki

    View full-size slide

  3. 2022/7/18 3/66
    基本情報
    サポーターズ関連イベントに出没
    1on1イベント 技育博 技育CAMP
    ※個人情報のため削除

    View full-size slide

  4. 2022/7/18 5/66
    PHP使ったことある方✋

    View full-size slide

  5. 2022/7/18 6/66
    軽い内容なので
    軽い気持ちで、聞いてください✌

    View full-size slide

  6. 2022/7/18 7/66
    話すこと
    【1.プロローグ】
    PHPが使えますよと就活に行ったら
    【2.言語の特徴】
    PHPが揶揄されてた理由
    及び、最近のPHPの変化
    【3.PHPのモダンな使い方】
    静的解析、オートローディング
    【4.エピローグ】
    PHPは人生

    View full-size slide

  7. 2022/7/18 8/66
    話すこと
    【1.プロローグ】
    PHPが使えますよと就活に行ったら
    【2.言語の特徴】
    PHPが揶揄されてた理由
    及び、最近のPHPの変化
    【3.PHPのモダンな使い方】
    静的解析、オートローディング
    【4.エピローグ】
    PHPは人生

    View full-size slide

  8. 2022/7/18 9/66
    PHPが使えますよと就活に行ったら

    View full-size slide

  9. 2022/7/18 10/66
    4~6月の某所
    一番使える言語はPHPです!
    えっ……🥴

    View full-size slide

  10. 2022/7/18 11/66
    4~6月の某所
    一番使える言語はPHPです!
    初めて見ましたっ……

    View full-size slide

  11. 2022/7/18 12/66
    ネットでのPHPの評判も……

    View full-size slide

  12. 2022/7/18 13/66
    ネットでのPHPの評判も……

    View full-size slide

  13. 2022/7/18 14/66

    View full-size slide

  14. 2022/7/18 15/66
    話すこと
    【1.プロローグ】
    PHPが使えますよと就活に行ったら
    【2.言語の特徴】
    PHPが揶揄されてた理由
    及び、最近のPHPの変化
    【3.PHPのモダンな使い方】
    静的解析、暗黙的型変換の禁止
    【4.エピローグ】
    PHPは人生

    View full-size slide

  15. 2022/7/18 16/66
    言語の特徴

    View full-size slide

  16. 2022/7/18 17/66
    PHPってどんな言語?







    1994年誕生のインタプリタ型言語

    View full-size slide

  17. 2022/7/18 18/66
    今年のPHPカンファレンス
    PHPerKaigi2022のスポンサー様
    https://phperkaigi.jp/2022
    ※著作権の都合で削除

    View full-size slide

  18. 2022/7/18 19/66
    こんなに愛されてるのにっ……

    View full-size slide

  19. 2022/7/18 20/66
    PHPが揶揄されてた理由

    View full-size slide

  20. 2022/7/18 21/66
    ちょっとあれなところ
    2
    暗黙的型変換の恐ろしさ
    PHP, お前だったのか. いつも型を変えたのは…
    未定義変数を使っても許される”やさしい”世界
    3
    エラーがゆるい
    1
    昔は速度が遅かった
    PHP7系からのzval構造体の変化で高速に

    View full-size slide

  21. 2022/7/18 22/66
    ちょっとあれなところ
    1
    昔は速度が遅かった
    PHP7系からのzval構造体の変化で高速に
    Farhan Ayub.“PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, and 8.0: Performance Benchmarks for WordPress”. Cloudways.2022/1/19.
    https://www.cloudways.com/blog/wordpress-performance-on-php-versions/ ,(2022/7/15)
    ※著作権の都合で削除

    View full-size slide

  22. 2022/7/18 24/66
    ちょっとあれなところ
    1
    昔は速度が遅かった
    PHP7系からのzval構造体の変化で高速に
    CAさんのゲームでの採用例
    メモリ上に全てのアプリケーションを乗せる
    Laravel Octaneを使用
    →さらに数倍の高速化が見込まれる……
    PHPアプリでワンバイナリ、非同期処理、並行処理、WebSocket…
    白井 英.“スマホゲーム業界におけるPHPの歴史とLaravel Octaneで広がるこれからのPHP”. Cloudways.2022/1/1.
    https://developers.cyberagent.co.jp/blog/archives/35832/,(2022/7/15)

    View full-size slide

  23. 2022/7/18 25/66
    ちょっとあれなところ
    1
    昔は速度が遅かった
    PHP7系からのzval構造体の変化で高速に。
    菊島達也.“『ウマ娘 プリティーダービー』のローンチを支えたサーバーアプリケーションの最適化ノウハウ”. PHP Conference Japan 2022.
    2022/7/15. https://fortee.jp/phpcon-2022/proposal/e6a14473-a415-4945-b9c9-e8182b09b480, 2022/7/16)
    まだプロポーザル段階だけど
    ウマ娘に関するPHPの話が
    今年のPHP Conferenceで明かされるかも……

    View full-size slide

  24. 2022/7/18 26/66
    ちょっとあれなところ
    1
    昔は速度が遅かった
    PHP7系からのzval構造体の変化で高速に。
    大手の大人気現代ゲームでも
    まだまだ使われているよ!

    View full-size slide

  25. 2022/7/18 27/66
    ちょっとあれなところ
    1
    昔は速度が遅かった
    PHP7系からのzval構造体の変化で高速に。
    速度は大丈夫そう

    View full-size slide

  26. 2022/7/18 28/66
    ちょっとあれなところ
    2
    暗黙的型変換の恐ろしさ
    PHP, お前だったのか. いつも型を変えたのは…
    PHPも型を書ける!(PHP7.0~)
    PHP5.0から段階的に導入されて来ました

    View full-size slide

  27. 2022/7/18 29/66
    ちょっとあれなところ
    2
    暗黙的型変換の恐ろしさ
    PHP, お前だったのか. いつも型を変えたのは…
    PHP8.0~ Union型だってできちゃう。
    Golangですらこんなことできないよ……

    View full-size slide

  28. 2022/7/18 30/66
    ちょっとあれなところ
    2
    暗黙的型変換の恐ろしさ
    PHP, お前だったのか. いつも型を変えたのは…
    でも、~PHP7.4は暗黙的型変換がつよーく効きます。
    文字列が勝手にint型に変換されて、文字列先端の数字3になる

    View full-size slide

  29. 2022/7/18 31/66
    ちょっとあれなところ
    2
    暗黙的型変換の恐ろしさ
    PHP, お前だったのか. いつも型を変えたのは…
    暗黙的型変換を禁止しちゃう(PHP7.0~)
    C言語の#includeレベルの常套句

    View full-size slide

  30. 2022/7/18 32/66
    ちょっとあれなところ
    2
    暗黙的型変換の恐ろしさ
    PHP, お前だったのか. いつも型を変えたのは…
    ちなみに比較でも同様のことが起きます。(~PHP7.4)
    文字列が勝手にint型に変換されて、最初に入っていた数字2で比較される

    View full-size slide

  31. 2022/7/18 33/66
    ちょっとあれなところ
    2
    暗黙的型変換の恐ろしさ
    PHP, お前だったのか. いつも型を変えたのは…
    ==でなく、===を使うと厳密にチェックできる。

    View full-size slide

  32. 2022/7/18 34/66
    ちょっとあれなところ
    2
    暗黙的型変換の恐ろしさ
    PHP, お前だったのか. いつも型を変えたのは…
    もしくはPHP8系に移行する。
    PHPの各バージョンでの実行結果が見れる
    https://3v4l.org

    View full-size slide

  33. 2022/7/18 35/66
    ちょっとあれなところ
    PHPなら……
    未定義変数を使っても許される”やさしい”世界
    3
    エラーがゆるい
    この出力結果は……

    View full-size slide

  34. 2022/7/18 36/66
    ちょっとあれなところ
    未定義変数を使っても異常終了しない!
    ~PHP7.4:Notice
    PHP8.0~:Warning
    未定義変数を使っても許される”やさしい”世界
    3
    エラーがゆるい

    View full-size slide

  35. 2022/7/18 37/66
    ちょっとあれなところ
    PHPのエラー種別
    未定義変数を使っても許される”やさしい”世界
    3
    エラーがゆるい
    1. Fatal error
    2. Parse error
    3. Warning
    4. Notice
    ↑異常終了
    ↓正常終了

    View full-size slide

  36. 2022/7/18 38/66
    ちょっとあれなところ
    例えばGolangなら
    未定義変数を使っても許される”やさしい”世界
    3
    エラーがゆるい

    View full-size slide

  37. 2022/7/18 39/66
    ちょっとあれなところ
    例えばGolangなら
    未定義変数を使っても許される”やさしい”世界
    3
    エラーがゆるい
    tekitou declared but not used

    View full-size slide

  38. 2022/7/18 40/66
    ちょっとあれなところ
    Golangって未定義どころか、使ってない変数の存在で
    異常終了してくれるのかよ……
    未定義変数を使っても許される”やさしい”世界
    3
    エラーがゆるい

    View full-size slide

  39. 2022/7/18 41/66
    ちょっとあれなところ
    PHPでは, 静的解析をしようね.
    (次の章で説明)
    未定義変数を使っても許される”やさしい”世界
    3
    エラーがゆるい

    View full-size slide

  40. 2022/7/18 42/66
    話すこと
    【1.プロローグ】
    PHPが使えますよと就活に行ったら
    【2.言語の特徴】
    PHPが揶揄されてた理由
    及び、最近のPHPの変化
    【3.PHPのモダンな使い方】
    静的解析、オートローディング
    【4.エピローグ】
    PHPは人生

    View full-size slide

  41. 2022/7/18 43/66
    PHPのモダンな使い方

    View full-size slide

  42. 2022/7/18 44/66
    令和最新版のPHP
    2
    PHP8系への以降
    モダン言語よりも一方上手に立つ
    declare(strict_type=1)を無心にかく
    3
    暗黙的型変換の禁止
    1
    型を書く
    無限の可能性を持つarrayとかあるけど……
    先に述べた通り……

    View full-size slide

  43. 2022/7/18 45/66
    周辺ツールがつよいっ!

    View full-size slide

  44. 2022/7/18 46/66
    令和最新版のPHP
    PHPStanで静的解析
    モダン言語みたいなご指摘をいただける俺たちの師匠
    Composerでオートローディング
    頑張れPHPer, 名前空間を活用した責務分割できるエンジニアになるんだ.
    PHPUnitでテスト
    より安全なコードに. そしてDIへ.

    View full-size slide

  45. 2022/7/18 47/66
    令和最新版のPHP
    PHPStanで静的解析
    モダン言語みたいなご指摘をいただける俺たちの師匠
    https://phpstan.org/try
    未定義変数, メソッドを指摘してくれる!

    View full-size slide

  46. 2022/7/18 48/66
    令和最新版のPHP
    PHPStanで静的解析
    モダン言語みたいなご指摘をいただける俺たちの師匠
    https://phpstan.org/try
    絶対trueな条件分岐とかも.

    View full-size slide

  47. 2022/7/18 49/66
    令和最新版のPHP
    PHPStanで静的解析
    モダン言語みたいなご指摘をいただける俺たちの師匠
    型周りも強力に見てくれる!

    View full-size slide

  48. 2022/7/18 50/66
    令和最新版のPHP
    PHPStanで静的解析
    モダン言語みたいなご指摘をいただける俺たちの師匠
    配列の中身まで指定できる!

    View full-size slide

  49. 2022/7/18 51/66
    令和最新版のPHP
    PHPStanで静的解析
    モダン言語みたいなご指摘をいただける俺たちの師匠
    型変数とか,型の条件分岐とかもできる

    View full-size slide

  50. 2022/7/18 52/66
    令和最新版のPHP
    PHPStanで静的解析
    モダン言語みたいなご指摘をいただける俺たちの師匠
    何が嬉しいの?
    1. 実行すること無く問題を発見!
    2. めちゃ強力な型チェック

    View full-size slide

  51. 2022/7/18 53/66
    令和最新版のPHP
    Composerでオートローディング
    頑張れPHPer, 名前空間を活用した責務分割できるエンジニアになるんだ.
    PHPUnitでテスト
    より安全なコードに. そしてDIへ.
    テストを書きましょう……

    View full-size slide

  52. 2022/7/18 54/66
    令和最新版のPHP
    PHPUnitでテスト
    より安全なコードに. そしてDIへ.
    テストを書くために……
    1. スーパーグローバル変数を避ける
    2. DIする
    3. 抽象に依存する

    View full-size slide

  53. 2022/7/18 55/66
    令和最新版のPHP
    PHPUnitでテスト
    より安全なコードに. そしてDIへ.
    こういうのをイミュータブルにして引数として引っ張ってきたり。

    View full-size slide

  54. 2022/7/18 56/66
    令和最新版のPHP
    PHPUnitでテスト
    より安全なコードに. そしてDIへ.
    DIしたり

    View full-size slide

  55. 2022/7/18 57/66
    令和最新版のPHP
    PHPUnitでテスト
    より安全なコードに. そしてDIへ.
    抽象に依存することで、単体テストを実現したり。

    View full-size slide

  56. 2022/7/18 58/66
    こういった工夫をして、
    CIでぶん回せば
    本番前に事故防止!

    View full-size slide

  57. 2022/7/18 59/66
    話すこと
    【1.プロローグ】
    PHPが使えますよと就活に行ったら
    【2.言語の特徴】
    PHPが揶揄されてた理由
    及び、最近のPHPの変化
    【3.PHPのモダンな使い方】
    静的解析、オートローディング
    【4.エピローグ】
    PHPは人生

    View full-size slide

  58. 2022/7/18 60/66
    PHPは人生

    View full-size slide

  59. 2022/7/18 61/66
    コンパイラに甘えないことで
    得られたものがたくさんある。
    ストックホルム症候群かも……

    View full-size slide

  60. 2022/7/18 62/66
    PHPで綺麗に書きたいと思うだけで
    アーキテクチャを自然と意識!
    DIとか、抽象への依存とか……

    View full-size slide

  61. 2022/7/18 63/66
    ゆりかごから墓場まで

    View full-size slide

  62. 2022/7/18 64/66
    PHP is LIFE
    2
    大手でもノウハウで維持
    2度の大量絶滅を生き延びた言語です.
    先人がたくさんいる.
    3
    キレイなコードへの意識
    1
    初心者でも書きやすい
    型なんて意識しなくても書けちゃう

    View full-size slide

  63. 2022/7/18 65/66
    PHPは良い言語だけど
    就活では強みにしにくい……
    (内定ください……)
    さいごに

    View full-size slide

  64. 2022/7/18 66/66
    ご清聴ありがとうございました!
    以上, うすゆきがお届けしました!

    View full-size slide