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
350
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
150
非エンジニアにも伝えるメールセキュリティ / Email security for non-engineers
ykanoh
17
6k
エンジニアは伝え方が9割/90% of what engineers need is communication skills
ykanoh
4
1.4k
PHPカンファレンス関西2024 クロージング/php kansai 2024 closing
ykanoh
0
140
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
終盤で崩壊させないAI駆動開発
j5ik2o
2
1.9k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
17
410k
数案件を同時に進行するためのコンテキスト整理術
sutetotanuki
2
240
システムは「動く」だけでは 足りない - 非機能要件・分散システム・トレードオフの基礎
nwiizo
28
8.8k
Introduction to Bill One Development Engineer
sansan33
PRO
0
410
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」ご紹介資料
laysakura
0
2.1k
DevOpsDays Tokyo 2026 軽量な仕様書と新たなDORA AI ケイパビリティで実現する、動くソフトウェアを中心とした開発ライフサイクル / DevOpsDays Tokyo 2026
n11sh1
0
120
GitHub Copilotを極める会 - 開発者のための活用術
findy_eventslides
7
4.2k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
74k
#jawsugyokohama 100 LT11, "My AWS Journey 2011-2026 - kwntravel"
shinichirokawano
0
230
聞き手の目線で考えるプロポーザル
takefumiyoshii
0
380
申請待ちゼロへ!AWS × Entra IDで実現した「権限付与」のセルフサービス化
mhrtech
2
300
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
67k
Mobile First: as difficult as doing things right
swwweet
225
10k
First, design no harm
axbom
PRO
2
1.2k
Typedesign – Prime Four
hannesfritz
42
3k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
490
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
760
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
880
Embracing the Ebb and Flow
colly
88
5k
Done Done
chrislema
186
16k
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