$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なぜPHPStanやPHP CodeSnifferを導入するのか 〜受託開発編〜
Search
くろきり
March 09, 2024
0
290
なぜPHPStanやPHP CodeSnifferを導入するのか 〜受託開発編〜
PHPerKaigi2024の登壇資料です。
くろきり
March 09, 2024
Tweet
Share
More Decks by くろきり
See All by くろきり
リアルISUCONの戦い方
kurokiri
0
290
PeachPieを使ってPHPを.NETで動かしてみた
kurokiri
0
310
少人数チーム開発でのレガシープロダクトとの向き合い方
kurokiri
0
1.2k
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
190
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
290
Are puppies a ranking factor?
jonoalderson
0
2.4k
It's Worth the Effort
3n
187
29k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
92
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
The SEO identity crisis: Don't let AI make you average
varn
0
36
Reality Check: Gamification 10 Years Later
codingconduct
0
1.9k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
How Software Deployment tools have changed in the past 20 years
geshan
0
30k
Transcript
PHPerKaigi 2024 @9rokirishima なぜPHPStanやPHP CodeSnifferを導入するのか 〜受託開発編〜
自己紹介 • 緒方 大佑(おがた だいすけ) • X:くろきり(@9rokirishima) • 所属 ◦
Growfit株式会社 ◦ 開発やったりマネージャーやったり
弊社の現在状況 • 基本的に新規案件に適用 • 使用ツール ◦ PHP-CS-Fixer ◦ PHPStan(レベル6) •
BitbucketPipelineを使い、ブランチをpushする時にチェック が走る
なぜ導入したのか?
書き方が違うコード読むの辛い
• 案件跨いでレビューやデバッグしてると少しづつ違うのが読んでい てストレスになってくる ◦ なんなら同じプロダクト内で書き方が違う ◦ PSR-12で統一するというルールはあるけど形骸化 • 保守が弊社じゃなかったとしてもプロダクトの今後のために極力読 みやすいコードにして他社に渡したい
静的解析入れて読みやすいコードを保ちたい
導入までの道のり
メンバーに相談 次のPJから静的解析 入れたいんだけど… (めんどくさがられるかなぁ…)
メンバーに相談 わかりました! !?!?
あっさり導入決定!
これで全て上手くいく!
とはならない
適用したPJの体制 • PM(くろきり) • バックエンドチーム • フロントエンドチーム • ブロックチェーンチーム 静的解析の運用はバックエンドチームにお願いした
しばらく経って 納期迫ってるし修正に時間 かかるので全然使ってないです !? 導入してみてどう?
導入自体にはポジティブだけど 継続しようとするとことろにハードルがある 最初はやってたけど 納期が… うち保守やらないし… 他のところは入れなく てもやれてるし…
反省点 • いきなり運用をお願いしてしまったこと ◦ 急にまかせても上手くできないのは当たり前 • 完了の定義に静的解析によるチェックが含まれていなかった ◦ 「実装でやるべきこと」ではなく「新しい作業」が増えてるように 感じて負担になっている
改めていく
変えたこと • 自分の方でみんなが使える所まで設定とフォローを行う ◦ 新規案件用のベースブランチに予め組み込み、pushすれば 自動でBitbucketPipelineでチェックが走るように ◦ IDEの設定もドキュメントにまとめる • 実装完了の定義に静的解析によるチェックも含める
◦ 今の所は回っている ◦ 上手く進まない時にアラートが上がりやすくなってる
改善余地はまだまだあるけど 徐々によくなっていってる
• 契約形態は関係なくて、プロダクトに必要ならツール入れよう • 導入したいなら皆がやり切れる仕組みまで作る まとめ
ご清聴ありがとうございました!