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
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大規模プロダクトにLinterを導入し運用している話
Hiroki Otsuka
June 30, 2022
More Decks by Hiroki Otsuka
See All by Hiroki Otsuka
サービスと共にチームも成長する 〜New Relicを利用したサービスとチームの定量化〜
hirokiotsuka
0
1.7k
PHP_LaravelのプロダクトでのNew_Relic活用事例
hirokiotsuka
0
550
Other Decks in Programming
See All in Programming
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
190
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
140
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
250
自作OSでスライド発表する
uyuki234
1
3.7k
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
どこまでゆるくて許されるのか
tk3fftk
0
460
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
350
スマートグラスで並列バイブコーディング
hyshu
0
280
継続モナドとリアクティブプログラミング
yukikurage
3
470
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
5.5k
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
320
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
370
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Leo the Paperboy
mayatellez
8
1.9k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
650
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Building Adaptive Systems
keathley
44
3.1k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
A designer walks into a library…
pauljervisheath
211
24k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
The SEO identity crisis: Don't let AI make you average
varn
0
510
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.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 • 解析のルールはレベルベース • レベルに応じて指摘の厳密さが変わる •
ルールを細かく設定できないのでパス