Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PHPでのリーダブルコード/Readable code in PHP
Search
Y-KANOH
March 24, 2022
Technology
400
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPでのリーダブルコード/Readable code in PHP
Y-KANOH
March 24, 2022
More Decks by Y-KANOH
See All by Y-KANOH
PHPカンファレンス関西の招待状 / Invitation to PHP Conference Kansai
ykanoh
0
110
君はジョシュアツリーを知っているか?名前をつけて事象を正しく認識しよう / Do you know Joshua Tree?
ykanoh
4
370
非エンジニアにも伝えるメールセキュリティ / Email security for non-engineers
ykanoh
18
6.9k
エンジニアは伝え方が9割/90% of what engineers need is communication skills
ykanoh
4
1.7k
PHPカンファレンス関西2024 クロージング/php kansai 2024 closing
ykanoh
0
190
PHPカンファレンス関西2024 オープニング/php kansai 2024 opening
ykanoh
2
390
PHP略語クイズ/PHP Abbreviation Quiz
ykanoh
1
3.1k
PHPカンファレンス関西2024スタッフ希望者向け説明会
ykanoh
0
470
PHPマジックメソッドクイズ!/PHP Magic Method Quiz
ykanoh
0
2k
Other Decks in Technology
See All in Technology
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1.1k
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
330
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
420
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
450
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
Rust で関数型ドメインモデリング
takonda
0
140
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
380
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
120
DGX Spark でどこまでハッキングができるのか?
kash1064
3
1.3k
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
Optimising Largest Contentful Paint
csswizardry
37
4k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.2k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
What's in a price? How to price your products and services
michaelherold
247
13k
WENDY [Excerpt]
tessaabrams
14
40k
BBQ
matthewcrist
90
10k
Become a Pro
speakerdeck
PRO
31
6.3k
Crafting Experiences
bethany
1
380
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Transcript
PHPでの リーダブルコード
加納 悠史 カノウユウジ PHPer @Ykanoh65 株式会社 ラクス
PHP使っている人
PHP使っていない人
PHPは変な言語? メリット ▰ すぐ使える ▰ 曖昧な書き方でもすぐ動く 5
PHPは変な言語? デメリット ▰ 曖昧なままなのでバグが起きやすい ▰ 変な記述でもとりあえず動く 6
デメリット回避のために
テクニックが必要
PHPで バグを減らす 記述方 9
1. PHPDoc ▰ 関数やクラスに記載するコメント ▰ PHPでは "型を指定する" ために使用 10
None
1. PHPDoc ▰ 関数やクラスに記載するコメント ▰ PHPでは "型を指定する" ために使用 ▰ 言語仕様以外で型が指定できる貴重なツール
12
2. 名前付き引数 ▰ PHP8.0 の新機能 ▰ 現在の最新は PHP8.1 ▰ 引数の初期値指定の煩雑さを回避
13
function hoge($startIndex=0, $num=0, $max=10, $min=1) { // ... } hoge(3,
12, 11); // min にはデフォルト値の 1 が入る hoge(0, 0, 10, 5); // min だけデフォルト値でないものを入れる場合に煩雑 hoge(min:5); // PHP 8.0 ではこのように書ける hoge(startIndex:3, num:12, max:11, min:1); // デフォルト値以外でも引数の意味がわかりやすくなる
2. 名前付き引数 ▰ PHP8.0 の新機能 ▰ 引数の初期値指定の煩雑さを回避 ▰ ぱっと見で引数の意味を理解できる IDE使ってたら不要かもしれないが...
15
PhpStorm の場合
3. PSR ▰ PHPの規約集 ▰ 複数のルールが存在 ▰ プロジェクトで採用ルールを選んで利用 17
https://www.php-fig.org/psr/
まとめ ▰ PHPDoc ▰ 名前付き引数 ▰ PSR 19