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
PHPでのリーダブルコード/Readable code in PHP
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Y-KANOH
March 24, 2022
Technology
360
2
Share
PHPでのリーダブルコード/Readable code in PHP
Y-KANOH
March 24, 2022
More Decks by Y-KANOH
See All by Y-KANOH
君はジョシュアツリーを知っているか?名前をつけて事象を正しく認識しよう / Do you know Joshua Tree?
ykanoh
4
160
非エンジニアにも伝えるメールセキュリティ / Email security for non-engineers
ykanoh
18
6.1k
エンジニアは伝え方が9割/90% of what engineers need is communication skills
ykanoh
4
1.4k
PHPカンファレンス関西2024 クロージング/php kansai 2024 closing
ykanoh
0
150
PHPカンファレンス関西2024 オープニング/php kansai 2024 opening
ykanoh
2
350
PHP略語クイズ/PHP Abbreviation Quiz
ykanoh
1
2.9k
PHPカンファレンス関西2024スタッフ希望者向け説明会
ykanoh
0
440
PHPマジックメソッドクイズ!/PHP Magic Method Quiz
ykanoh
0
1.8k
PHPerが再利用可能な情報提供でオフショア先とコード品質向上に取り組む / PHPer try improve the code quality
ykanoh
1
1.4k
Other Decks in Technology
See All in Technology
Scovilleモバイルエンジニア募集中.pdf
julienrudin
0
120
色を視る
yuzneri
0
190
PicoRuby as a Multi-VM Operating System
kishima
1
220
Choose your own adventure in agentic design patterns
glaforge
0
160
Agents CLI と Gemini Enterprise Agent Platform で マルチエージェント開発が楽しくなる!
kaz1437
0
170
AIが書いたコードを信じられない問題 〜レビュー負荷を下げるために変えたこと〜 / The AI Code Trust Gap: Reducing the Review Burden
bitkey
PRO
8
1.4k
データを"持てない"環境でのアノテーション基盤設計
sansantech
PRO
1
150
目的ファーストのハーネス設計 ~ハーネスの変更容易性を高めるための優先順位~
gotalab555
8
2.5k
AIが盛んな時代に 技術記事を書き始めて起きた私の中での小さな変化
peintangos
0
270
弁護士ドットコム株式会社 エンジニア職向け 会社紹介資料
bengo4com
1
190
これからの「データマネジメント」の話をしよう
sansantech
PRO
0
160
Microsoft 365 / Microsoft 365 Copilot : 自分の状態を確認する「ラベル」について
taichinakamura
0
370
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
6
590
Amusing Abliteration
ianozsvald
1
160
New Earth Scene 8
popppiees
3
2.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
680
Crafting Experiences
bethany
1
120
YesSQL, Process and Tooling at Scale
rocio
174
15k
Faster Mobile Websites
deanohume
310
31k
Balancing Empowerment & Direction
lara
6
1.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
530
It's Worth the Effort
3n
188
29k
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