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
130
新卒1ヶ月半の邁進と変化
usuyuki
1
470
5分で理解するWebAssemblyのWebの外の話 PHPはマイコンの夢を見るか?
usuyuki
3
580
Git -研究室ミーティング2023/12/1資料-
usuyuki
0
470
非公式内定者懇親会 LT たのしい企業理念クイズ!
usuyuki
0
590
技育展2023 ブロック予選関東① かどで日記
usuyuki
0
610
サポーターズエンジニア1on1面談イベント10月自己紹介
usuyuki
0
1.6k
U-lab定期LT10月 古代技術と現代技術の融合VSCodeVimのススメ
usuyuki
0
1.1k
技育CAMP vol.5 発表スライド(うすゆき_むすびねる)
usuyuki
0
1.1k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
41
2.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Teambox: Starting and Learning
jrom
132
8.7k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
A Philosophy of Restraint
colly
203
16k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
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 ご清聴ありがとうございました! 以上, うすゆきがお届けしました!