クリーンなコードへのSonarQube即効活用術
継続的インスペクション── 作りながら品質を保つ開発スタイルへ!
富永陽一・鈴木啓太・高市智章 著 B5変型判 208ページ 定価:2,200円(税込) ISBN:978-4-86594-224-8 2020年3月上旬刊行
電子書籍
アジャイル開発、DevOps、マイクロサービス等の開発サイクルは、高速かつ短周期です。どうしたら開発品質を維持できるでしょうか? 複数の開発言語に対応したソースコードの静的解析ツール「SonarQube」はその解として、テストの自動化と「継続的インスペクション」を提唱。日本でも足早に浸透しつつあります。本書では品質改善活動の刷新に向け、SonarQubeの全体像と、使い方を体系立てて紹介。Java、C#/VB.NET、JavaScript、Pythonでの適用例、さらにGitLabやJenkinsとの連携など、実務に役立つ知識を集めました。
内容詳細

■刊行の背景

高品質なアプリケーションを迅速に開発し、矢継ぎ早にリリースしなければならない昨今の開発現場では、CI/CD(継続的インテグレーション/継続的デリバリ)やアジャイルプロセス等がどんどん浸透しています。しかし、そうした短い周期の開発サイクルのなかで、開発ソースの品質を保ち続けるには、新しい仕組みが必要となります。その手段として注目されているのが、ソースコードの静的解析ツール「SonarQube」なのですが、従来、情報の多くは断片的で英語のままでした。

■本書の目標

本書は本邦初のSonarQube入門書として、以下の3つの目標を順に目指していきます。
1)SonarQubeの役割と機能を理解する
2)お試し導入して、効果を確かめる
3)実プロジェクトに本格適用し、継続的インスペクションを実践できるようになる

■対象読者

次のような方々のために書きました。
・ソースコードの品質改善を図りたい開発チームまたは個人
・自分の書いたコードに自信が持てない開発者
・ダメダメなコードの保守に、いい加減うんざりしている人(レビュアー、テスト担当者など)

本書を読むには、以下の前提知識が必要です。
・WindowsやLinux等OSに関する基本的な知識
・Java、C#/VB.NET、JavaScript、Python、いずれかのプログラミング経験

■本書の構成

本書は3部構成になっています。
「基礎編」では、ソースコードの品質改善手法、SonarQubeの概要、基本的な使い方までを網羅します。
「実例編」では、Java、C#/VB.NET、JavaScript、Pythonでの適用例を、それぞれチュートリアル形式で見ていきます。
「実践編」では、より発展的な運用知識、GitLabやJenkinsとの連携などを解説します。

本書を開発品質の向上、継続的インスペクションの実現に、是非とも役立ててください。

■著者プロフィール

富永陽一(トミナガ ヨウイチ)

第1章~5章、8章、10章、前文ほかを執筆
日本ユニシス株式会社に所属。大規模プロジェクトの開発経験を経て、最近ではJava、Python、クラウド、コンテナ等を用いた新規サービス開発に従事。趣味は飲酒、ゲーム、サッカー(観るよりはやる方が好き)。一児のパパ。

鈴木啓太(すずき けいた)

第7章と11章を執筆
ソフトバンク株式会社に所属。「ユーザに向けた新しい価値を自ら作り、届けていきたい」という想いのもと、フロント系システムの開発に従事。日々開発を行う傍ら、社内/外への情報発信・DevOps 推進に取り組む。

高市智章(たかいち ともあき)

第6章と9章を執筆
ソフトバンク株式会社に所属。自社のオンラインショップシステムやソフトバンクショップ向けシステムの開発に従事。開発を通じて特に Javaとアジャイルを日々勉強中。Japan Java Testing Community (JJTC) を設立、運営メンバーの一人としても活動。
https://jjtc.connpass.com/


■サンプルコードのダウンロードはこちら


■本書の主な内容
基礎編
1 ソースコードの品質とSonarQube
1.1 SonarQubeとは?
1.2 動的テストによる品質確保
1.3 静的テストによる品質確保
1.4 SonarQubeによる品質改善
2 SnarQubeのセットアップ
2.1 SnarQubeが利用するデータベース
2.2 SnarQubeのダウンロード
2.3 Windowsへのインストール
2.4 Linuxへのインストール
2.5 SnarQubeの初期設定
2.6 SnarCloudを利用する
3 SnarQubeのアーキテクチャ
3.1 SnarQubeの構造
3.2 連携可能な外部コンポーネント
実例編
4 Javaのコードを分析する
4.1 基本的な使い方
4.2 Sonar Scannerを使う
4.3 Eclipseで使う
4.4 プラグインを使う
5 .NET Frameworkのコードを分析する
5.1 基本的な使い方
5.2 Visual Studioで使う
6 JavaScriptのコードを分析する
6.1 Sonar JSのインストール
6.2 JavaScriptのプロジェクトを解析する
6.3 テストカバレッジを表示する
6.4 ESLintを活用する
7 Pythonのコードを分析する
7.1 SonarPythonのインストール
7.2 Pythonプロジェクトの解析
7.3 テストカバレッジの測定
7.4 ユニットテスト実行結果の連携
7.5 Pylintを使う
7.6 Visual Studio CodeとSonarLintを連携する
コラム マイクロサービスとSorarQube
実践編
8 SonarQubeサーバーの使い方
8.1 ダッシュボード
8.2 ISSUE
8.3 メトリック
8.4 Measures
8.5 Quality Profile
8.6 Quality Gate
9 継続的インスペクションの運用
9.1 ソフトウェア品質における課題と解決
9.2 アジャイル開発における継続的インスペクション
10 外部ツールと連携する
10.1 GitやSubversionと連携させる
10.2 継続的インスペクション環境の構築(その1)
10.3 継続的インスペクション環境の構築(その2)
11 SonarQubeの安定運用に向けて
11.1 外部データベースを使う
11.2 バックアップの手順
11.3 アップグレードの手順