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
140
静的解析ツールを導入した話
業務でQodanaを導入した話になります
K1mu21
June 08, 2024
Tweet
Share
More Decks by K1mu21
See All by K1mu21
Cloudflareいいぞ
k1mu21
1
53
WebGLを触ってみよう
k1mu21
1
32
GoのAirを使ってみた話
k1mu21
0
53
学生から社会人1年目を通して
k1mu21
2
180
データベースで沼った話
k1mu21
0
46
Lidarであそぼ
k1mu21
0
28
Other Decks in Programming
See All in Programming
JaSST 24 九州:ワークショップ(は除く)実践!マインドマップを活用したソフトウェアテスト+活用事例
satohiroyuki
0
270
Server Driven Compose With Firebase
skydoves
0
410
Hotwire or React? ~Reactの録画機能をHotwireに置き換えて得られた知見~ / hotwire_or_react
harunatsujita
9
4.3k
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
16
4.1k
CSC509 Lecture 09
javiergs
PRO
0
120
Kubernetes for Data Engineers: Building Scalable, Reliable Data Pipelines
sucitw
1
200
飲食業界向けマルチプロダクトを実現させる開発体制とリアルな現状
hiroya0601
1
400
推し活としてのrails new/oshikatsu_ha_iizo
sakahukamaki
3
1.7k
qmuntal/stateless のススメ
sgash708
0
120
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
450
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
240
Nuxtベースの「WXT」でChrome拡張を作成する | Vue Fes 2024 ランチセッション
moshi1121
1
560
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
280
34k
Music & Morning Musume
bryan
46
6.1k
How to train your dragon (web standard)
notwaldorf
88
5.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
167
49k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
What's in a price? How to price your products and services
michaelherold
243
12k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
A designer walks into a library…
pauljervisheath
202
24k
Designing on Purpose - Digital PM Summit 2013
jponch
115
6.9k
KATA
mclloyd
29
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.2k
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は神
宣伝