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
Y-KANOH
March 24, 2022
Technology
1
210
PHPでのリーダブルコード/Readable code in PHP
Y-KANOH
March 24, 2022
Tweet
Share
More Decks by Y-KANOH
See All by Y-KANOH
PHPカンファレンス関西2024 オープニング/php kansai 2024 opening
ykanoh
2
140
PHP略語クイズ/PHP Abbreviation Quiz
ykanoh
1
2.1k
PHPカンファレンス関西2024スタッフ希望者向け説明会
ykanoh
0
240
PHPマジックメソッドクイズ!/PHP Magic Method Quiz
ykanoh
0
1.1k
PHPerが再利用可能な情報提供でオフショア先とコード品質向上に取り組む / PHPer try improve the code quality
ykanoh
0
930
どんとこい、PhpStorm 〜Why don't you do IDE's best!〜 / Don't KOI PhpStorm!! Why don't you do IDE's best!!
ykanoh
0
6.2k
技術コミュニティ運営戦線〜継続して勉強会を運営するために〜/how to operate community continuously
ykanoh
0
1.4k
めざせOSSコントリビュート/LetsContributeOSS
ykanoh
2
120
コミュニティ活動で差別化をめざすエンジニアの一手/Distinguish by community for engineers career
ykanoh
2
960
Other Decks in Technology
See All in Technology
推薦システムを本番導入する上で一番優先すべきだったこと~NewsPicks記事推薦機能の改善事例を元に~
morinota
0
130
What is DRE? - Road to SRE NEXT@広島
chanyou0311
3
630
E2Eテスト自動化プラットフォームにおけるAIの活用
shift_evolve
0
190
サービスの持続的な成長と技術負債について
siva_official
PRO
10
4.4k
How to Think Like a Performance Engineer
csswizardry
4
590
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
3
290
Github Actions 로 Android 팀의 효율성 극대화
hadonghyun
0
160
[NIKKEI Tech Talk] KDDI/KAG Scrum & Community for Engineering Training
curanosuke
2
220
AWS IAMのアンチパターン/AWSが考える最低権限実現へのアプローチ概略(JAWS-UG朝会#59資料改修20分版)
htan
0
330
CTOから見た事業開発とプロダクト開発 / My Perspective on Business and Product Development as CTO
keisuke69
4
960
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.8k
20240717_イケコパ代表Copilot_in_Teams会社でこう使ってます
ponponmikankan
2
430
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
Debugging Ruby Performance
tmm1
71
11k
How to train your dragon (web standard)
notwaldorf
79
5.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
GraphQLとの向き合い方2022年版
quramy
36
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
44
4.7k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
36
9.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
325
21k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
2.9k
Statistics for Hackers
jakevdp
792
220k
The Language of Interfaces
destraynor
151
23k
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