#phperkaigi【実録】「PHP_CodeSniffer」で始める快適コードレビューライフ/codereviewlife
by
mrstsgk
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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