×
Copy
Open
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 2024 @9rokirishima なぜPHPStanやPHP CodeSnifferを導入するのか 〜受託開発編〜
Slide 2
Slide 2 text
自己紹介 ● 緒方 大佑(おがた だいすけ) ● X:くろきり(@9rokirishima) ● 所属 ○ Growfit株式会社 ○ 開発やったりマネージャーやったり
Slide 3
Slide 3 text
弊社の現在状況 ● 基本的に新規案件に適用 ● 使用ツール ○ PHP-CS-Fixer ○ PHPStan(レベル6) ● BitbucketPipelineを使い、ブランチをpushする時にチェック が走る
Slide 4
Slide 4 text
なぜ導入したのか?
Slide 5
Slide 5 text
書き方が違うコード読むの辛い
Slide 6
Slide 6 text
● 案件跨いでレビューやデバッグしてると少しづつ違うのが読んでい てストレスになってくる ○ なんなら同じプロダクト内で書き方が違う ○ PSR-12で統一するというルールはあるけど形骸化 ● 保守が弊社じゃなかったとしてもプロダクトの今後のために極力読 みやすいコードにして他社に渡したい 静的解析入れて読みやすいコードを保ちたい
Slide 7
Slide 7 text
導入までの道のり
Slide 8
Slide 8 text
メンバーに相談 次のPJから静的解析 入れたいんだけど… (めんどくさがられるかなぁ…)
Slide 9
Slide 9 text
メンバーに相談 わかりました! !?!?
Slide 10
Slide 10 text
あっさり導入決定!
Slide 11
Slide 11 text
これで全て上手くいく!
Slide 12
Slide 12 text
とはならない
Slide 13
Slide 13 text
適用したPJの体制 ● PM(くろきり) ● バックエンドチーム ● フロントエンドチーム ● ブロックチェーンチーム 静的解析の運用はバックエンドチームにお願いした
Slide 14
Slide 14 text
しばらく経って 納期迫ってるし修正に時間 かかるので全然使ってないです !? 導入してみてどう?
Slide 15
Slide 15 text
導入自体にはポジティブだけど 継続しようとするとことろにハードルがある 最初はやってたけど 納期が… うち保守やらないし… 他のところは入れなく てもやれてるし…
Slide 16
Slide 16 text
反省点 ● いきなり運用をお願いしてしまったこと ○ 急にまかせても上手くできないのは当たり前 ● 完了の定義に静的解析によるチェックが含まれていなかった ○ 「実装でやるべきこと」ではなく「新しい作業」が増えてるように 感じて負担になっている
Slide 17
Slide 17 text
改めていく
Slide 18
Slide 18 text
変えたこと ● 自分の方でみんなが使える所まで設定とフォローを行う ○ 新規案件用のベースブランチに予め組み込み、pushすれば 自動でBitbucketPipelineでチェックが走るように ○ IDEの設定もドキュメントにまとめる ● 実装完了の定義に静的解析によるチェックも含める ○ 今の所は回っている ○ 上手く進まない時にアラートが上がりやすくなってる
Slide 19
Slide 19 text
改善余地はまだまだあるけど 徐々によくなっていってる
Slide 20
Slide 20 text
● 契約形態は関係なくて、プロダクトに必要ならツール入れよう ● 導入したいなら皆がやり切れる仕組みまで作る まとめ
Slide 21
Slide 21 text
ご清聴ありがとうございました!