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
大規模プロダクトにLinterを導入し運用している話
Search
Hiroki Otsuka
June 30, 2022
Programming
0
990
大規模プロダクトに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
500
Other Decks in Programming
See All in Programming
CSC307 Lecture 03
javiergs
PRO
1
460
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
AtCoder Conference 2025
shindannin
0
900
Patterns of Patterns
denyspoltorak
0
420
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
160
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
160
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.3k
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
160
ThorVG Viewer In VS Code
nors
0
540
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
230
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
58
41k
Writing Fast Ruby
sferik
630
62k
The SEO identity crisis: Don't let AI make you average
varn
0
46
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
690
New Earth Scene 8
popppiees
0
1.3k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
94
The Invisible Side of Design
smashingmag
302
51k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
0
1k
For a Future-Friendly Web
brad_frost
180
10k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
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 • 解析のルールはレベルベース • レベルに応じて指摘の厳密さが変わる •
ルールを細かく設定できないのでパス