Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
PHPでのリーダブルコード/Readable code in PHP
Y-KANOH
March 24, 2022
Technology
1
51
PHPでのリーダブルコード/Readable code in PHP
Y-KANOH
March 24, 2022
Tweet
Share
More Decks by Y-KANOH
See All by Y-KANOH
どんとこい、PhpStorm 〜Why don't you do IDE's best!〜 / Don't KOI PhpStorm!! Why don't you do IDE's best!!
ykanoh
0
840
技術コミュニティ運営戦線〜継続して勉強会を運営するために〜/how to operate community continuously
ykanoh
0
790
めざせOSSコントリビュート/LetsContributeOSS
ykanoh
2
62
コミュニティ活動で差別化をめざすエンジニアの一手/Distinguish by community for engineers career
ykanoh
2
710
PHP標準関数との戦い/Fighting with PHP standard function
ykanoh
0
1.3k
PhpStorm中級者入門/PhpStorm intermediate level person
ykanoh
1
640
RFCの歩き方/How to read PHP RFC
ykanoh
2
1.3k
アプリ作成と運用から学ぶ Firebase と Vue.js
ykanoh
2
260
電撃:Laravelクイズ / DENGEKI:LaravelQuiz
ykanoh
1
1.4k
Other Decks in Technology
See All in Technology
Continuous Architecture Design for Modernization
humank
1
420
CityGMLとFBXの連携で地理空間のエンタメ化
soh_mitian
0
720
Step-by-Step MLOps and Microsoft Products
shisyu_gaku
1
560
LINSTOR — это как Kubernetes, но для блочных устройств
flant
0
3k
JAWS-UG 朝会 #36 登壇資料
takakuni
1
560
Getting Started in Product Management
thatjeffsmith
0
110
DeFiChain Tech Talk - DFI Uniswap Staking, DeFi Options & DeFi Meta Chain
uzyn
0
110
psql, my favorite tool!
nuko_yokohama
1
180
MySQL v5.7 勉強会/study-mysql-ver-5-7
andpad
0
2k
ソフトウェアアーキテクチャの基礎: Software Architecture in a Nutshell
snoozer05
29
8.8k
2022 COSCUP - GKE Backend Cluster 除雷分享
brentchang
0
120
Cloud Foundryの移行先はどこか? オープンソースPaaS探し
kolinz
0
350
Featured
See All Featured
Statistics for Hackers
jakevdp
782
210k
Testing 201, or: Great Expectations
jmmastey
21
5.5k
From Idea to $5000 a Month in 5 Months
shpigford
373
44k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
12k
In The Pink: A Labor of Love
frogandcode
131
21k
Web development in the modern age
philhawksworth
197
9.3k
The Language of Interfaces
destraynor
148
21k
Docker and Python
trallard
27
1.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
225
130k
A designer walks into a library…
pauljervisheath
196
16k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Unsuck your backbone
ammeep
659
55k
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