Slide 1

Slide 1 text

静的解析ツールを導入した話 K1mu21

Slide 2

Slide 2 text

自己紹介 ● K1mu21 ○ 23卒です ● 所属 ○ 株式会社ラクーンホールディングス ● 分野 ○ バックエンド(+フロントエンド) ● 使用言語 ○ Go,Java,PHP,Astro ● 趣味 ○ 旅行、筋トレ、日本酒 ● X ○ @detunote ● 分野 ○ バッsaクエンド(+フロントエンド)

Slide 3

Slide 3 text

静的解析ツールとは ● 人間の記述したプログラムのソースコードを解析し、プログラミング言語の 文法や仕様を満たしているか、定められたコーディング規約に則っている かなどを調べるもの ● 例 ○ ESLintとか

Slide 4

Slide 4 text

導入した静的解析ツール

Slide 5

Slide 5 text

導入する上で必要だったもの ● VScode上で解析結果が見れる ● GitLabのCodeQuarityの機能で解析結果が表示される ● 表示させるエラーの調整ができる

Slide 6

Slide 6 text

導入を考えたツール ● 今回はJavaメインですが他言語でも使えます! ● SpotBugs ○ コマンドを叩いたら解析が実行されるが VScode上表示するのが大変 ● Soner Lint, Soner Qube ○ VScodeに表示できる、CodeQuality簡単に使える、エラー指定できるで完璧 ○ 無料もあるが有料版がLOC課金で年900万円超え($での支払い)🥺🥺🥺 ● Qodana ○ VScodeに一応表示できる、CodeQuality使えるようにできる、エラー指定できる ○ 無料もあり、有料が年11万くらい🥳

Slide 7

Slide 7 text

Qodanaの特徴 ● JetBrains製の静的解析ツール ○ InteliJとかGorandとかの静的解析する機能だけ取り出したもの ● DockerImageがある ○ CI時にイメージ呼び出して動かすだけでいいのでめちゃくちゃ助かる ● ドキュメントが見やすい ○ https://www.jetbrains.com/help/qodana/getting-started.html ● 料金が安い ○ 安いプランでも1Developer年7200円 ● 解析結果をHTML形式にも出力できる

Slide 8

Slide 8 text

Qodanaのデメリット ● 未使用変数、メソッドの指摘が推奨設定でされなかった ○ PHPなどはされるのを確認できたが、 Javaだけされなかった ○ 公式に問い合わせて解決できたが返信きたのが 3週間後...😡 ● 社内GitLabサーバーを殺しかけた ○ 400MBのArtifactを作りまくってサーバーを殺しかけた ○ 残り容量2GBくらいまで減らした ● 有料版じゃないのでSpring FrameworkのDIを考慮してくれないのでめっちゃ指摘さ れる ○ 指摘数が半端じゃないほど増える ● ドキュメントに甘い部分がある ○ 例のコードが動かなかった

Slide 9

Slide 9 text

とりあえず実装したもの ● VScodeへの表示 ❌ ○ Qodana Cloudに結果を上げる必要がありセキュリティ的に一旦保留 ● CodeQuarityを使って表示 ⭕ ● エラーの調整ができる ⭕ 追加 ● GitLab Pageの機能を使って解析結果をHTML形式でも見れるようにしまし た(GitHub Pagesみたいなもの)

Slide 10

Slide 10 text

JetBrainsは神

Slide 11

Slide 11 text

宣伝