$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
静的解析ツールを導入した話
Search
K1mu21
June 08, 2024
Programming
1
210
静的解析ツールを導入した話
業務でQodanaを導入した話になります
K1mu21
June 08, 2024
Tweet
Share
More Decks by K1mu21
See All by K1mu21
dependabotを導入して失敗した話
k1mu21
0
120
Rust勉強会1回目の資料
k1mu21
0
54
ギャレトレ勉強会
k1mu21
0
50
リプレイスでやったこと
k1mu21
1
67
Cloudflareいいぞ
k1mu21
1
120
WebGLを触ってみよう
k1mu21
1
50
GoのAirを使ってみた話
k1mu21
0
120
学生から社会人1年目を通して
k1mu21
2
240
データベースで沼った話
k1mu21
0
67
Other Decks in Programming
See All in Programming
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.7k
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.4k
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
160
開発に寄りそう自動テストの実現
goyoki
1
750
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
6
970
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
350
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
3k
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
26
22k
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
110
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
390
Integrating WordPress and Symfony
alexandresalome
0
140
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Building an army of robots
kneath
306
46k
Mobile First: as difficult as doing things right
swwweet
225
10k
Docker and Python
trallard
47
3.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
A designer walks into a library…
pauljervisheath
210
24k
Fireside Chat
paigeccino
41
3.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Designing for Performance
lara
610
69k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Balancing Empowerment & Direction
lara
5
790
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
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は神
宣伝