Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なぜPHPStanやPHP CodeSnifferを導入するのか 〜受託開発編〜
Search
くろきり
March 09, 2024
0
200
なぜPHPStanやPHP CodeSnifferを導入するのか 〜受託開発編〜
PHPerKaigi2024の登壇資料です。
くろきり
March 09, 2024
Tweet
Share
More Decks by くろきり
See All by くろきり
PeachPieを使ってPHPを.NETで動かしてみた
kurokiri
0
210
少人数チーム開発でのレガシープロダクトとの向き合い方
kurokiri
0
990
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
How GitHub (no longer) Works
holman
311
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Become a Pro
speakerdeck
PRO
26
5k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
KATA
mclloyd
29
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Cost Of JavaScript in 2023
addyosmani
45
7k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Speed Design
sergeychernyshev
25
670
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の設定もドキュメントにまとめる • 実装完了の定義に静的解析によるチェックも含める
◦ 今の所は回っている ◦ 上手く進まない時にアラートが上がりやすくなってる
改善余地はまだまだあるけど 徐々によくなっていってる
• 契約形態は関係なくて、プロダクトに必要ならツール入れよう • 導入したいなら皆がやり切れる仕組みまで作る まとめ
ご清聴ありがとうございました!