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
静的解析ツールを導入した話
Search
K1mu21
June 08, 2024
Programming
250
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
静的解析ツールを導入した話
業務でQodanaを導入した話になります
K1mu21
June 08, 2024
More Decks by K1mu21
See All by K1mu21
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
320
dependabotを導入して失敗した話
k1mu21
0
180
Rust勉強会1回目の資料
k1mu21
0
89
ギャレトレ勉強会
k1mu21
0
87
リプレイスでやったこと
k1mu21
1
100
Cloudflareいいぞ
k1mu21
1
160
WebGLを触ってみよう
k1mu21
1
66
GoのAirを使ってみた話
k1mu21
0
170
学生から社会人1年目を通して
k1mu21
2
270
Other Decks in Programming
See All in Programming
Flow は今どうなっているか
mizdra
PRO
0
390
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
210
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.5k
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
220
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
260
Go 1.27 における memory allocation の高速化
andpad
0
170
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
120
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
270
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
370
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
110
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
360
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
760
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
410
Code Reviewing Like a Champion
maltzj
528
40k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
From π to Pie charts
rasagy
0
280
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
119
120k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Being A Developer After 40
akosma
91
590k
Transcript
静的解析ツールを導入した話 K1mu21
自己紹介 • K1mu21 ◦ 23卒です • 所属 ◦ 株式会社ラクーンホールディングス •
分野 ◦ バックエンド(+フロントエンド) • 使用言語 ◦ Go,Java,PHP,Astro • 趣味 ◦ 旅行、筋トレ、日本酒 • X ◦ @detunote • 分野 ◦ バッsaクエンド(+フロントエンド)
静的解析ツールとは • 人間の記述したプログラムのソースコードを解析し、プログラミング言語の 文法や仕様を満たしているか、定められたコーディング規約に則っている かなどを調べるもの • 例 ◦ ESLintとか
導入した静的解析ツール
導入する上で必要だったもの • VScode上で解析結果が見れる • GitLabのCodeQuarityの機能で解析結果が表示される • 表示させるエラーの調整ができる
導入を考えたツール • 今回はJavaメインですが他言語でも使えます! • SpotBugs ◦ コマンドを叩いたら解析が実行されるが VScode上表示するのが大変 • Soner
Lint, Soner Qube ◦ VScodeに表示できる、CodeQuality簡単に使える、エラー指定できるで完璧 ◦ 無料もあるが有料版がLOC課金で年900万円超え($での支払い)🥺🥺🥺 • Qodana ◦ VScodeに一応表示できる、CodeQuality使えるようにできる、エラー指定できる ◦ 無料もあり、有料が年11万くらい🥳
Qodanaの特徴 • JetBrains製の静的解析ツール ◦ InteliJとかGorandとかの静的解析する機能だけ取り出したもの • DockerImageがある ◦ CI時にイメージ呼び出して動かすだけでいいのでめちゃくちゃ助かる •
ドキュメントが見やすい ◦ https://www.jetbrains.com/help/qodana/getting-started.html • 料金が安い ◦ 安いプランでも1Developer年7200円 • 解析結果をHTML形式にも出力できる
Qodanaのデメリット • 未使用変数、メソッドの指摘が推奨設定でされなかった ◦ PHPなどはされるのを確認できたが、 Javaだけされなかった ◦ 公式に問い合わせて解決できたが返信きたのが 3週間後...😡 •
社内GitLabサーバーを殺しかけた ◦ 400MBのArtifactを作りまくってサーバーを殺しかけた ◦ 残り容量2GBくらいまで減らした • 有料版じゃないのでSpring FrameworkのDIを考慮してくれないのでめっちゃ指摘さ れる ◦ 指摘数が半端じゃないほど増える • ドキュメントに甘い部分がある ◦ 例のコードが動かなかった
とりあえず実装したもの • VScodeへの表示 ❌ ◦ Qodana Cloudに結果を上げる必要がありセキュリティ的に一旦保留 • CodeQuarityを使って表示 ⭕ • エラーの調整ができる ⭕
追加 • GitLab Pageの機能を使って解析結果をHTML形式でも見れるようにしまし た(GitHub Pagesみたいなもの)
JetBrainsは神
宣伝