Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
大規模プロダクトにLinterを導入し運用している話
Search
Hiroki Otsuka
June 30, 2022
Programming
0
980
大規模プロダクトにLinterを導入し運用している話
Hiroki Otsuka
June 30, 2022
Tweet
Share
More Decks by Hiroki Otsuka
See All by Hiroki Otsuka
サービスと共にチームも成長する 〜New Relicを利用したサービスとチームの定量化〜
hirokiotsuka
0
1.6k
PHP_LaravelのプロダクトでのNew_Relic活用事例
hirokiotsuka
0
490
Other Decks in Programming
See All in Programming
dotfiles 式年遷宮 令和最新版
masawada
1
760
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
420
connect-python: convenient protobuf RPC for Python
anuraaga
0
400
開発に寄りそう自動テストの実現
goyoki
2
910
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
310
AWS CDKの推しポイントN選
akihisaikeda
1
240
AIコーディングエージェント(NotebookLM)
kondai24
0
180
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
380
愛される翻訳の秘訣
kishikawakatsumi
3
320
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
160
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
170
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
150
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
100
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
The Invisible Side of Design
smashingmag
302
51k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
The Cult of Friendly URLs
andyhume
79
6.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Facilitating Awesome Meetings
lara
57
6.7k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
https://www.dip-net.co.jp/ 1 ⼤規模プロダクトにLinterを導⼊し 運⽤している話 ディップ株式会社 ⼤塚裕紀
https://www.dip-net.co.jp/ 2 自己紹介 大塚裕紀(おおつかひろき) • 経歴 2018年4月からエンジニアとして働き出す 2020年9月にディップ株式会社に入社 ずっとPHPやってます
https://www.dip-net.co.jp/ 3
https://www.dip-net.co.jp/ 4 10年ほど運用
https://www.dip-net.co.jp/ 5 数千ファイル
https://www.dip-net.co.jp/ 6 EC2からFargateへ AWS Fargate Amazon EC2
https://www.dip-net.co.jp/ 7 JavaからPHP&Laravelへ AWS Fargate Amazon EC2 + CMS
https://www.dip-net.co.jp/ 8 ですが。。
https://www.dip-net.co.jp/ 9 課題 • バグになりうるコードがある • 長期運用しておりコードが複雑 • テストコードが不十分
https://www.dip-net.co.jp/ 10 課題 • バグになりうるコードがある • 長期運用しておりコードが複雑 • テストコードが不十分
https://www.dip-net.co.jp/ 11 そもそもLinterってなに?
https://www.dip-net.co.jp/ 12 Linterとは • 「lint」という静的解析ツールから派生し出来た言葉 • 静的解析を行うプログラムの総称 • コード上は問題ないけどバグになりうる部分を指摘し てくれるツール
https://www.dip-net.co.jp/ 13 導入したLinter
https://www.dip-net.co.jp/ 14 導入したLinter https://phpinsights.com/
https://www.dip-net.co.jp/ 15 PHP Insights • PHP用の静的解析ツール • コードの品質やコーディングスタイルの解析に加え、 アーキテクチャや複雑さも解析してくれる •
Laravel,Symfony,Yii,WordPress,Magento2などですぐに使 えるように設計されている
https://www.dip-net.co.jp/ 16 なぜPHP Insights?
https://www.dip-net.co.jp/ 17 なぜPHP Insights?
https://www.dip-net.co.jp/ 18 なぜPHP Insights? 実行結果が見やすい
https://www.dip-net.co.jp/ 19 なぜPHP Insights? • 細かくルールの設定が可能 • Code:コードの評価 • Complexity:複雑さの評価
• Archtecture:アーキテクチャの評価 • Style:コーディングのスタイルの評価
https://www.dip-net.co.jp/ 20 導入してどうだったか
https://www.dip-net.co.jp/ 21 導入してどうだったか • 導入は容易に出来た • ルールを絞ることで無理なく導入出来た
https://www.dip-net.co.jp/ 22 導入してどうだったか • 導入は容易に出来た • ルールを絞ることで無理なく導入出来た
https://www.dip-net.co.jp/ 23 導入してどうだったか • 導入は容易に出来た • ルールを絞ることで無理なく導入出来た
https://www.dip-net.co.jp/ 24 導入後の運用
https://www.dip-net.co.jp/ 25 導入後の運用 AWS CodeBuild GitHub
https://www.dip-net.co.jp/ 26 導入後の運用 テストと Linterを実行 PUSH HOOK GitHub AWS CodeBuild
https://www.dip-net.co.jp/ 27 導入後の運用 テストと Linterを実行 PUSH HOOK GitHub AWS CodeBuild
https://www.dip-net.co.jp/ 28 導入後の運用
https://www.dip-net.co.jp/ 29 導入後の運用 コードレビューの負担が減る
https://www.dip-net.co.jp/ 30 課題は?
https://www.dip-net.co.jp/ 31 課題は? • バグになりうるコードがある • 長期運用しておりコードが複雑 • テストコードが不十分
https://www.dip-net.co.jp/ 32 課題は? • バグになりうるコードがある ü バグになりうるコードはLinterで指摘される • 長期運用しておりコードが複雑 •
テストコードが不十分
https://www.dip-net.co.jp/ 33 課題は? • バグになりうるコードがある ü バグになりうるコードはLinterで指摘される • 長期運用しておりコードが複雑 ü
修正の土台が出来た • テストコードが不十分
https://www.dip-net.co.jp/ 34 これからやっていきたいこと
https://www.dip-net.co.jp/ 35 これからやっていきたいこと • ルールの厳密化 • 自動修正
https://www.dip-net.co.jp/ 36 これからやっていきたいこと • ルールの厳密化 • 自動修正
https://www.dip-net.co.jp/ 37 これからやっていきたいこと • ルールの厳密化 • 自動修正
https://www.dip-net.co.jp/ 38 まとめ
https://www.dip-net.co.jp/ 39 まとめ • コードに合わせて無理のない範囲で導入できた • コード全体の品質が向上した • コードレビューの負担が減った •
自動化することでプロダクトの品質を維持できる • ルールの厳密化と自動修正もやって行きたい
https://www.dip-net.co.jp/ 40 ありがとうございました。
https://www.dip-net.co.jp/ 41 APENDIX
https://www.dip-net.co.jp/ 42 他Linter • Larastan • 解析のルールはレベルベース • レベルに応じて指摘の厳密さが変わる •
ルールを細かく設定できないのでパス