#phperkaigi【実録】「PHP_CodeSniffer」で始める快適コードレビューライフ/codereviewlife
by
mrstsgk
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
#PHPerKaigi 2023 ©2023 RAKUS Co., Ltd. 【実録】「PHP_CodeSniffer」で始める 快適コードレビューライフ 2023/03/25 PHPerKaigi 2023 株式会社ラクス 森下 繁喜
Slide 2
Slide 2 text
#PHPerKaigi 2023 自己紹介 ● 森下 繁喜(もりした しげき) ○ 株式会社ラクス ○ 開発担当 ● 趣味 ○ 筋トレ(ベンチプレス80kg挙げる系PHPer) 2
Slide 3
Slide 3 text
#PHPerKaigi 2023 3 アジェンダ §1. 「PHP_CodeSniffer」について §2. 「PHP_CodeSniffer」を導入するに至った経緯 §3. 「PHP_CodeSniffer」を導入してみて ※導入手順や設定ファイルなどについては触れません
Slide 4
Slide 4 text
#PHPerKaigi 2023 4 §1. 「PHP_CodeSniffer」について ● PHP_CodeSnifferとは ○ コーディング規約の違反を検出するライブラリです。 ○ PSRやPEARなどの様々なコーディング規約を指定して検査を実施していま す。 ○ 独自の規約を追加することも可能です。
Slide 5
Slide 5 text
#PHPerKaigi 2023 5 §1. 「PHP_CodeSniffer」について ● チームでの運用方法 ○ CIに組み込んでチェック
Slide 6
Slide 6 text
#PHPerKaigi 2023 6 §2. 「PHP_CodeSniffer」を導入するに至った経緯 突然ですが、 コードレビューって辛くないですか?
Slide 7
Slide 7 text
#PHPerKaigi 2023 7 §2. 「PHP_CodeSniffer」を導入するに至った経緯 ● コードレビュー時に確認すること ○ コーディング規約 ○ ネーミング規約 ○ ソースコードの可読性 など
Slide 8
Slide 8 text
#PHPerKaigi 2023 8 §2. 「PHP_CodeSniffer」を導入するに至った経緯 ● コードレビュー時に確認すること ○ コーディング規約 ○ ネーミング規約 ○ ソースコードの可読性 など 確認することが 多すぎる!!
Slide 9
Slide 9 text
#PHPerKaigi 2023 9 §2. 「PHP_CodeSniffer」を導入するに至った経緯 ● コーディング規約・ネ―ミング規約の数が多い ○ コーディング規約:57件 ○ ネーミング規約 :26件 合計:83件 ● 機械的にチェックできる規約も... ○ クラス名の単語の先頭は大文字にする ○ インデントは空白文字2文字分
Slide 10
Slide 10 text
#PHPerKaigi 2023 10 §2. 「PHP_CodeSniffer」を導入するに至った経緯 ● 問題点 ○ コーディング規約・ネーミング規約の確認に時間がかかる ○ 確認漏れが発生 ○ 指摘、指摘対応、再レビューの工数がかかる
Slide 11
Slide 11 text
#PHPerKaigi 2023 11 §2. 「PHP_CodeSniffer」を導入するに至った経緯 コーディング規約・ネーミング規約のうち、 機械チェック可能なものは自動でチェックしてほしい
Slide 12
Slide 12 text
#PHPerKaigi 2023 12 §2. 「PHP_CodeSniffer」を導入するに至った経緯 PHP_CodeSnifferを導入しましょう!
Slide 13
Slide 13 text
#PHPerKaigi 2023 13 §3. 「PHP_CodeSniffer」を導入してみて ● コードレビューでの負担が減った?
Slide 14
Slide 14 text
#PHPerKaigi 2023 14 §3. 「PHP_CodeSniffer」を導入してみて しかし
Slide 15
Slide 15 text
#PHPerKaigi 2023 15 §3. 「PHP_CodeSniffer」を導入してみて めっちゃ怒られる
Slide 16
Slide 16 text
#PHPerKaigi 2023 16 §3. 「PHP_CodeSniffer」を導入してみて なぜ?
Slide 17
Slide 17 text
#PHPerKaigi 2023 17 §3. 「PHP_CodeSniffer」を導入してみて ● Commitを開発完了時にまとめてPushしていた ○ CI実行時にまとめて修正指摘が返ってくる
Slide 18
Slide 18 text
#PHPerKaigi 2023 18 §3. 「PHP_CodeSniffer」を導入してみて ● 開発中に細かいCommit粒度でPushするように ○ その結果、 「開発→CIでコードを確認→修正」のサイクルで 実装に集中しやすい状態ができた。
Slide 19
Slide 19 text
#PHPerKaigi 2023 19 §3. 「PHP_CodeSniffer」を導入してみて ● ほかに困ったことは? ○ 警告への対処法がわからない → 各メンバーで発生した警告の対処法を チームで共通のシートにまとめる
Slide 20
Slide 20 text
#PHPerKaigi 2023 20 まとめ ● 静的解析ツール最高!! ○ レビューコストの削減 ← 本来の目的 ○ 実装コストの削減 チェックする項目数を30%削減できた! 合計:83件 → 57件に
Slide 21
Slide 21 text
#PHPerKaigi 2023 おわり ご清聴ありがとうございました!! 21