Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPerと就活
Search
usuyuki
July 18, 2022
0
1.2k
PHPerと就活
usuyuki
July 18, 2022
Tweet
Share
More Decks by usuyuki
See All by usuyuki
毎年殺されるPHPとは何か
usuyuki
0
150
新卒1ヶ月半の邁進と変化
usuyuki
1
510
5分で理解するWebAssemblyのWebの外の話 PHPはマイコンの夢を見るか?
usuyuki
3
600
Git -研究室ミーティング2023/12/1資料-
usuyuki
0
490
非公式内定者懇親会 LT たのしい企業理念クイズ!
usuyuki
0
610
技育展2023 ブロック予選関東① かどで日記
usuyuki
0
630
サポーターズエンジニア1on1面談イベント10月自己紹介
usuyuki
0
1.6k
U-lab定期LT10月 古代技術と現代技術の融合VSCodeVimのススメ
usuyuki
0
1.2k
技育CAMP vol.5 発表スライド(うすゆき_むすびねる)
usuyuki
0
1.1k
Featured
See All Featured
Unsuck your backbone
ammeep
668
57k
Bash Introduction
62gerente
608
210k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Designing Experiences People Love
moore
138
23k
Scaling GitHub
holman
458
140k
Facilitating Awesome Meetings
lara
50
6.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Music & Morning Musume
bryan
46
6.2k
Practical Orchestrator
shlominoach
186
10k
Raft: Consensus for Rubyists
vanstee
136
6.6k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Transcript
PHPer 宇都宮大学 工学部 3年 うすゆき
2022/7/18 2/66 基本情報 CV:xxxx PHPer 宇都宮大学生 VTuberにハマってます。 usuyuki26 Usuyuki Usuyuki
usuyuki usuyuki
2022/7/18 3/66 基本情報 サポーターズ関連イベントに出没 1on1イベント 技育博 技育CAMP ※個人情報のため削除
2022/7/18 5/66 PHP使ったことある方✋
2022/7/18 6/66 軽い内容なので 軽い気持ちで、聞いてください✌
2022/7/18 7/66 話すこと 【1.プロローグ】 PHPが使えますよと就活に行ったら 【2.言語の特徴】 PHPが揶揄されてた理由 及び、最近のPHPの変化 【3.PHPのモダンな使い方】 静的解析、オートローディング
【4.エピローグ】 PHPは人生
2022/7/18 8/66 話すこと 【1.プロローグ】 PHPが使えますよと就活に行ったら 【2.言語の特徴】 PHPが揶揄されてた理由 及び、最近のPHPの変化 【3.PHPのモダンな使い方】 静的解析、オートローディング
【4.エピローグ】 PHPは人生
2022/7/18 9/66 PHPが使えますよと就活に行ったら
2022/7/18 10/66 4~6月の某所 一番使える言語はPHPです! えっ……🥴
2022/7/18 11/66 4~6月の某所 一番使える言語はPHPです! 初めて見ましたっ……
2022/7/18 12/66 ネットでのPHPの評判も……
2022/7/18 13/66 ネットでのPHPの評判も……
2022/7/18 14/66
2022/7/18 15/66 話すこと 【1.プロローグ】 PHPが使えますよと就活に行ったら 【2.言語の特徴】 PHPが揶揄されてた理由 及び、最近のPHPの変化 【3.PHPのモダンな使い方】 静的解析、暗黙的型変換の禁止
【4.エピローグ】 PHPは人生
2022/7/18 16/66 言語の特徴
2022/7/18 17/66 PHPってどんな言語? • • • • • • •
1994年誕生のインタプリタ型言語
2022/7/18 18/66 今年のPHPカンファレンス PHPerKaigi2022のスポンサー様 https://phperkaigi.jp/2022 ※著作権の都合で削除
2022/7/18 19/66 こんなに愛されてるのにっ……
2022/7/18 20/66 PHPが揶揄されてた理由
2022/7/18 21/66 ちょっとあれなところ 2 暗黙的型変換の恐ろしさ PHP, お前だったのか. いつも型を変えたのは… 未定義変数を使っても許される”やさしい”世界 3
エラーがゆるい 1 昔は速度が遅かった PHP7系からのzval構造体の変化で高速に
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) ※著作権の都合で削除
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)
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で明かされるかも……
2022/7/18 26/66 ちょっとあれなところ 1 昔は速度が遅かった PHP7系からのzval構造体の変化で高速に。 大手の大人気現代ゲームでも まだまだ使われているよ!
2022/7/18 27/66 ちょっとあれなところ 1 昔は速度が遅かった PHP7系からのzval構造体の変化で高速に。 速度は大丈夫そう
2022/7/18 28/66 ちょっとあれなところ 2 暗黙的型変換の恐ろしさ PHP, お前だったのか. いつも型を変えたのは… PHPも型を書ける!(PHP7.0~) PHP5.0から段階的に導入されて来ました
2022/7/18 29/66 ちょっとあれなところ 2 暗黙的型変換の恐ろしさ PHP, お前だったのか. いつも型を変えたのは… PHP8.0~ Union型だってできちゃう。
Golangですらこんなことできないよ……
2022/7/18 30/66 ちょっとあれなところ 2 暗黙的型変換の恐ろしさ PHP, お前だったのか. いつも型を変えたのは… でも、~PHP7.4は暗黙的型変換がつよーく効きます。 文字列が勝手にint型に変換されて、文字列先端の数字3になる
2022/7/18 31/66 ちょっとあれなところ 2 暗黙的型変換の恐ろしさ PHP, お前だったのか. いつも型を変えたのは… 暗黙的型変換を禁止しちゃう(PHP7.0~) C言語の#include<stdio.h>レベルの常套句
2022/7/18 32/66 ちょっとあれなところ 2 暗黙的型変換の恐ろしさ PHP, お前だったのか. いつも型を変えたのは… ちなみに比較でも同様のことが起きます。(~PHP7.4) 文字列が勝手にint型に変換されて、最初に入っていた数字2で比較される
2022/7/18 33/66 ちょっとあれなところ 2 暗黙的型変換の恐ろしさ PHP, お前だったのか. いつも型を変えたのは… ==でなく、===を使うと厳密にチェックできる。
2022/7/18 34/66 ちょっとあれなところ 2 暗黙的型変換の恐ろしさ PHP, お前だったのか. いつも型を変えたのは… もしくはPHP8系に移行する。 PHPの各バージョンでの実行結果が見れる
https://3v4l.org
2022/7/18 35/66 ちょっとあれなところ PHPなら…… 未定義変数を使っても許される”やさしい”世界 3 エラーがゆるい この出力結果は……
2022/7/18 36/66 ちょっとあれなところ 未定義変数を使っても異常終了しない! ~PHP7.4:Notice PHP8.0~:Warning 未定義変数を使っても許される”やさしい”世界 3 エラーがゆるい
2022/7/18 37/66 ちょっとあれなところ PHPのエラー種別 未定義変数を使っても許される”やさしい”世界 3 エラーがゆるい 1. Fatal error
2. Parse error 3. Warning 4. Notice ↑異常終了 ↓正常終了
2022/7/18 38/66 ちょっとあれなところ 例えばGolangなら 未定義変数を使っても許される”やさしい”世界 3 エラーがゆるい
2022/7/18 39/66 ちょっとあれなところ 例えばGolangなら 未定義変数を使っても許される”やさしい”世界 3 エラーがゆるい tekitou declared but
not used
2022/7/18 40/66 ちょっとあれなところ Golangって未定義どころか、使ってない変数の存在で 異常終了してくれるのかよ…… 未定義変数を使っても許される”やさしい”世界 3 エラーがゆるい
2022/7/18 41/66 ちょっとあれなところ PHPでは, 静的解析をしようね. (次の章で説明) 未定義変数を使っても許される”やさしい”世界 3 エラーがゆるい
2022/7/18 42/66 話すこと 【1.プロローグ】 PHPが使えますよと就活に行ったら 【2.言語の特徴】 PHPが揶揄されてた理由 及び、最近のPHPの変化 【3.PHPのモダンな使い方】 静的解析、オートローディング
【4.エピローグ】 PHPは人生
2022/7/18 43/66 PHPのモダンな使い方
2022/7/18 44/66 令和最新版のPHP 2 PHP8系への以降 モダン言語よりも一方上手に立つ declare(strict_type=1)を無心にかく 3 暗黙的型変換の禁止 1
型を書く 無限の可能性を持つarrayとかあるけど…… 先に述べた通り……
2022/7/18 45/66 周辺ツールがつよいっ!
2022/7/18 46/66 令和最新版のPHP PHPStanで静的解析 モダン言語みたいなご指摘をいただける俺たちの師匠 Composerでオートローディング 頑張れPHPer, 名前空間を活用した責務分割できるエンジニアになるんだ. PHPUnitでテスト より安全なコードに.
そしてDIへ.
2022/7/18 47/66 令和最新版のPHP PHPStanで静的解析 モダン言語みたいなご指摘をいただける俺たちの師匠 https://phpstan.org/try 未定義変数, メソッドを指摘してくれる!
2022/7/18 48/66 令和最新版のPHP PHPStanで静的解析 モダン言語みたいなご指摘をいただける俺たちの師匠 https://phpstan.org/try 絶対trueな条件分岐とかも.
2022/7/18 49/66 令和最新版のPHP PHPStanで静的解析 モダン言語みたいなご指摘をいただける俺たちの師匠 型周りも強力に見てくれる!
2022/7/18 50/66 令和最新版のPHP PHPStanで静的解析 モダン言語みたいなご指摘をいただける俺たちの師匠 配列の中身まで指定できる!
2022/7/18 51/66 令和最新版のPHP PHPStanで静的解析 モダン言語みたいなご指摘をいただける俺たちの師匠 型変数とか,型の条件分岐とかもできる
2022/7/18 52/66 令和最新版のPHP PHPStanで静的解析 モダン言語みたいなご指摘をいただける俺たちの師匠 何が嬉しいの? 1. 実行すること無く問題を発見! 2. めちゃ強力な型チェック
2022/7/18 53/66 令和最新版のPHP Composerでオートローディング 頑張れPHPer, 名前空間を活用した責務分割できるエンジニアになるんだ. PHPUnitでテスト より安全なコードに. そしてDIへ. テストを書きましょう……
2022/7/18 54/66 令和最新版のPHP PHPUnitでテスト より安全なコードに. そしてDIへ. テストを書くために…… 1. スーパーグローバル変数を避ける 2.
DIする 3. 抽象に依存する
2022/7/18 55/66 令和最新版のPHP PHPUnitでテスト より安全なコードに. そしてDIへ. こういうのをイミュータブルにして引数として引っ張ってきたり。
2022/7/18 56/66 令和最新版のPHP PHPUnitでテスト より安全なコードに. そしてDIへ. DIしたり
2022/7/18 57/66 令和最新版のPHP PHPUnitでテスト より安全なコードに. そしてDIへ. 抽象に依存することで、単体テストを実現したり。
2022/7/18 58/66 こういった工夫をして、 CIでぶん回せば 本番前に事故防止!
2022/7/18 59/66 話すこと 【1.プロローグ】 PHPが使えますよと就活に行ったら 【2.言語の特徴】 PHPが揶揄されてた理由 及び、最近のPHPの変化 【3.PHPのモダンな使い方】 静的解析、オートローディング
【4.エピローグ】 PHPは人生
2022/7/18 60/66 PHPは人生
2022/7/18 61/66 コンパイラに甘えないことで 得られたものがたくさんある。 ストックホルム症候群かも……
2022/7/18 62/66 PHPで綺麗に書きたいと思うだけで アーキテクチャを自然と意識! DIとか、抽象への依存とか……
2022/7/18 63/66 ゆりかごから墓場まで
2022/7/18 64/66 PHP is LIFE 2 大手でもノウハウで維持 2度の大量絶滅を生き延びた言語です. 先人がたくさんいる. 3
キレイなコードへの意識 1 初心者でも書きやすい 型なんて意識しなくても書けちゃう
2022/7/18 65/66 PHPは良い言語だけど 就活では強みにしにくい…… (内定ください……) さいごに
2022/7/18 66/66 ご清聴ありがとうございました! 以上, うすゆきがお届けしました!