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
1
180
静的解析ツールを導入した話
業務でQodanaを導入した話になります
K1mu21
June 08, 2024
Tweet
Share
More Decks by K1mu21
See All by K1mu21
dependabotを導入して失敗した話
k1mu21
0
91
Rust勉強会1回目の資料
k1mu21
0
44
ギャレトレ勉強会
k1mu21
0
33
リプレイスでやったこと
k1mu21
1
48
Cloudflareいいぞ
k1mu21
1
91
WebGLを触ってみよう
k1mu21
1
46
GoのAirを使ってみた話
k1mu21
0
92
学生から社会人1年目を通して
k1mu21
2
220
データベースで沼った話
k1mu21
0
62
Other Decks in Programming
See All in Programming
Vibe Coding の話をしよう
schroneko
13
3.6k
AIコーディングエージェントを 「使いこなす」ための実践知と現在地 in ログラス / How to Use AI Coding Agent in Loglass
rkaga
4
1.2k
Golangci-lint v2爆誕: 君たちはどうすべきか
logica0419
1
230
Flutterでllama.cppをつかってローカルLLMを試してみた
sakuraidayo
0
120
プロダクト横断分析に役立つ、事前集計しないサマリーテーブル設計
hanon52_
3
530
大LLM時代にこの先生きのこるには-ITエンジニア編
fumiyakume
7
3.3k
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
150
Make Parsers Compatible Using Automata Learning
makenowjust
2
6.9k
Amazon CloudWatchの地味だけど強力な機能紹介!
itotsum
0
230
実践Webフロントパフォーマンスチューニング
cp20
45
10k
Boost Your Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
750
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
1
260
Featured
See All Featured
Facilitating Awesome Meetings
lara
54
6.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
Done Done
chrislema
184
16k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
690
Faster Mobile Websites
deanohume
306
31k
Product Roadmaps are Hard
iamctodd
PRO
52
11k
Bash Introduction
62gerente
611
210k
Docker and Python
trallard
44
3.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
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は神
宣伝