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
110
PHPでのリーダブルコード/Readable code in PHP
Y-KANOH
March 24, 2022
Tweet
Share
More Decks by Y-KANOH
See All by Y-KANOH
PHPerが再利用可能な情報提供でオフショア先とコード品質向上に取り組む / PHPer try improve the code quality
ykanoh
0
570
どんとこい、PhpStorm 〜Why don't you do IDE's best!〜 / Don't KOI PhpStorm!! Why don't you do IDE's best!!
ykanoh
0
2.2k
技術コミュニティ運営戦線〜継続して勉強会を運営するために〜/how to operate community continuously
ykanoh
0
930
めざせOSSコントリビュート/LetsContributeOSS
ykanoh
2
74
コミュニティ活動で差別化をめざすエンジニアの一手/Distinguish by community for engineers career
ykanoh
2
750
PHP標準関数との戦い/Fighting with PHP standard function
ykanoh
0
1.4k
PhpStorm中級者入門/PhpStorm intermediate level person
ykanoh
1
680
RFCの歩き方/How to read PHP RFC
ykanoh
2
1.5k
アプリ作成と運用から学ぶ Firebase と Vue.js
ykanoh
2
270
Other Decks in Technology
See All in Technology
金属加工屋の営業マンがSTマイクロで・・・
usashirou
0
170
PCI DSS に準拠したシステム開発
yutadayo
0
310
日経電子版だけじゃない! 日経の新規Webメディアの開発 - NIKKEI Tech Talk #3
sztm
0
340
Deep Neural Networkの共同学習
hf149
0
330
OpenShiftクラスターのアップグレード自動化への挑戦! / OpenShift Cluster Upgrade Automation
skitamura7446
0
200
SSMパラメーターストアでクロススタック参照の罠を回避する
shuyakinjo
0
7.9k
オブザーバビリティのベストプラクティスと弥生の現状 / best practices for observability and YAYOI’s current state
yayoi_dd
0
150
AWS Cloud Forensics & Incident Response
e11i0t_4lders0n
0
410
Deep dive in Reserved Instance ~脳死推奨量購入からの脱却~
kzkmaeda
0
550
Hatena Engineer Seminar #23 「チームとプロダクトを育てる Mackerel 開発合宿」
arthur1
0
600
都市ARの作り方 PLATEAU ✖︎ Geospatial API
41h0_shiho
0
250
初めてのデータ移行プロジェクトから得た学び
tjmtmmnk
0
400
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
326
55k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
197
10k
A Philosophy of Restraint
colly
193
15k
KATA
mclloyd
12
9.7k
No one is an island. Learnings from fostering a developers community.
thoeni
12
1.5k
Designing the Hi-DPI Web
ddemaree
273
32k
Bash Introduction
62gerente
601
210k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
120
29k
Building Applications with DynamoDB
mza
85
5k
The Invisible Customer
myddelton
113
12k
Building Your Own Lightsaber
phodgson
96
4.9k
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