ホーム/ドキュメント/解析/Code Diff in CppDepend

Code Diff in CppDepend

CppDepend でソース コードの差分をマスターする

このドキュメントでは、対話的UIのコンテキストでCppDependのビルド比較機能の使い方を説明します。このドキュメントは コード差分レポート レポートのコンテキストでCppDependのビルド比較機能の使い方を説明。

入門ビデオ (2:30分)

入門ビデオ (2:30分) を見る

CppDepend のコード差分機能の使い方を学びます。

はじめに

コードの進化とコードの保守は、ソフトウェア エンジニアリングの最も顕著な特性の一部です。

CppDepend は 2009 年半ばから、高度なコード進化機能とコード差分機能を備えています。Visual Studio に統合された CppDepend の最も素晴らしい成果の 1 つは、開発者が自然な開発環境からワンクリックで、きめ細かいコード差分機能を利用できるようになったことです。3 つの典型的なコード差分シナリオを紹介しましょう。

VisualCppDependからのコード差分

たとえば、Code Browser でプロジェクトを右クリックして次を要求できます コードが変更された(プロジェクトの)メソッドを選択.

CppDependクラスブラウザ

これにより、次の CQLinq クエリが生成されます コードが変更された(プロジェクトの)メソッドを選択 もちろん、一覧表示された各メソッドについて、ソース コード宣言に直接ジャンプしたり、diff を要求したりできます。

CQLinqクエリ

トップへ

検索パネルによるコード変更レビュー

Search Change パネルは、実際にはコード変更に関連する CQLinq クエリジェネレーターにすぎません。たとえば、下のスクリーンショットでは、次を要求すると Method + Change + Code was Changed or was Added CQLinqクエリを生成:

1from m in Application.Methods
2
3where m.CodeWasChanged() || m.WasAdded()
4
5select new { m, m.NbLinesOfCode }

表示された結果は効率的なに最適 コード変更レビュー: すべてのコード変更が一目で見やすく整理されているだけでなく、リファクタリングされた各メソッドについて、開発者はワンクリックでソースファイルの差分を確認できます。

コードが変更されました

Search Change パネルのオプションは、コードのみ(コメントではなく)が変更されたコード要素、コメントのみが変更されたコード要素、可視性が変更されたもの、追加または削除されたものなどを検索するなど、差分を探索するさまざまな可能性を提供します…

ボーナス オプションとして、たとえばどのライブラリ型が使用されなくなったかを尋ねるなど、層コードで差分を検索できます。

通常、開発者はリファクタリングされたコードと新しいコードを自動的にテストするためのテストを書くのが好きです。もう 1 つの便利なボーナスオプションは、テストによるコードカバレッジ率と組み合わせた差分の検索です。たとえば、コードが変更された(つまりリファクタリングされた)メソッドで、実際にはテストで適切にカバーされていないものを要求します。

トップへ

Visual Studioからのコード差分

先ほど見たように、ソースコードの右クリックメニューには CppDepend メニューがありますが、Visual Studio のソースコードエディターにも CppDepend メニューがあります。CppDepend はソースで現在編集されているコード要素を認識するため、ユーザーはたとえばメソッドを右クリックして、変更されたかどうかを確認できます。メソッドのコードが実際に変更されている場合、右クリックの CppDepend メニューにいくつかのオプションが表示されます。オプションの 1 つは ソースファイルの古いバージョンと新しいバージョンを比較、変更を確認するためのテキスト diff アプリケーションが開きます

Visual Studio内のコード差分

例えばこちらが VS 2012拡張差分ツール クリックして開く ソースファイルの古いバージョンと新しいバージョンを比較 上で NUnit v2.4.8v2.5.3 メソッド IsPlatformSupported().

VS 2012拡張差分ツール

上の最初のスクリーンショットをもう一度見ると、次を含む他の興味深いオプションがいくつか表示されます 古いソースコードで宣言を開く.

メソッドの変更だけでなく、名前空間、型、フィールドの変更も考慮されることを明確にしておきましょう。たとえば、名前空間のソースコード宣言を右クリックして、リファクタリングまたは追加された名前空間の型やメソッドを要求できます。

この時点で、CppDepend/Visual Studio が比較対象となる以前のバージョンのコードをどのように認識しているのか(比較のベースラインと呼ばれるもの)疑問に思うかもしれません。この概念については、この記事の後半で説明します。2 番目のコード差分シナリオに進みましょう。

トップへ

比較用ベースラインの定義

この記事の前半で、次の概念を紹介しました 比較用ベースライン。これは、比較が行われる対象となるコードベースの以前のスナップショットバージョンを表します。通常、比較のベースラインは、本番環境にあるコードの最新バージョンを表します。

比較のベースラインはメニューから指定できます: Diff > Define The Two Snapshots to Diff > Define the project's Baseline for Comparison。以下のダイアログが表示され、さまざまなオプションからベースラインを定義できます。Baseline for Comparison オプションは、CppDepend プロジェクトファイルに保存されます。

ベースライン比較設定

最後に、任意の diff ツールをメニューから接続できます 差分 > ソースファイル比較ツール.

今すぐCppDependを試す

ドキュメントの全機能にアクセスできる14日間無料トライアル。クレジットカード不要。