演習 1.4: 構造上の問題の解決

この演習は、『演習 1.1: 必要なリソースのインポート』が 完了していることを前提としています。演習 1.4 では、最初にユーザー・シナリオを 読みます。次に、ユーザー・シナリオに説明されているソフトウェア設計者の役割を 担い、演習 1.1 でインポートしたプロジェクトを使用して、演習を実行します。



ユーザー・シナリオ

設計者は、循環依存関係に特定のコードを確認するために、そのような 依存関係のみを検索する構造分析コード・レビューを実行します。 コード・レビューでは幾つかの循環依存関係が見つかり、設計者はその関係の一部に クイック・フィックスが存在することに気付きます。クイック・フィックスは、 共通する検出結果を修復するために提供される自動化された方法です。設計者は、 コードをリファクタリングして循環がなくなるようにするために、ある循環依存関係に クイック・フィックスを適用します。

最後の演習では、設計者はコード・レビューを実行して、検出結果の 1 つを修正します。



演習

この演習では、以下の作業を実行します。

  1. コード・レビューを実行して、循環依存関係を見つける。
  2. 循環依存関係にクイック・フィックスが提供されていることを認識する。
  3. クイック・フィックスを適用して、循環依存関係を解決する。
  4. クイック・フィックスが適用されたことを確認する。


循環依存関係を検査するためのコード・レビューの選択

循環依存関係を検査するコード・レビューを選択するには、以下のようにします。

  1. 「コード・レビュー (Code Review)」ビューの ツールバーで、「ルールの管理 (Manage Rules)」アイコン を クリックします。
  2. 「コード・レビュー (Code Review)」ビュー

  3. 「コード・レビューの選択 (Select Code Review)」リストで、「構造分析コード・レビュー (Structural Analysis Code Review)」をクリックします。
  4. Structural Analysis フォルダーを展開して、Cyclic Dependency サブフォルダー以外を すべてクリアします。
  5. 次の画面取りに示されているように、Cyclic Dependency サブフォルダーを 展開して、コード・レビューに適用するルールを表示します。「OK」をクリックします。
  6. 「設定」ウィンドウ



レビューを実行するコード・ベースの選択

レビューを実行するコード・ベースとしてワークスペースを選択するには、以下の手順を実行します。

コード・レビューの実行

レビューを実行するコード・ベースを選択した後で、コード・レビューを実行します。 ビューの右下隅にある進行状況表示バーを確認することで、状況を追跡できます。



見つかった循環依存関係のリストの表示

次の画面取りに示されているように、コード・レビューにより 4 つの循環依存関係が 見つかりました。循環依存関係は、回避しなければならない、望ましくない アンチパターンです。循環依存関係では、オブジェクトのグループが 相互接続されているため、いずれかのオブジェクトが変更されると、他のすべての オブジェクトが影響を受ける可能性があります。

1 つのフォルダーが折りたたまれたコード・レビュー結果

  1. 次の画面取りに示されているように、Structural Analysis: Cyclic Dependency フォルダーを 展開して、以下の検出結果に注意します。
  2. 1 つのフォルダーが展開されたコード・レビュー結果

  3. リストの 3 番目の結果を右クリックします。「クイック・フィックス (Quick Fix)」ポップアップ・メニューの選択項目は、ソリューションによって 異なります。選択した循環依存関係のフィックスでは、基本クラスから別のクラスに 静的フィールドを移動することによって、循環依存関係を除去します。
  4. 「クイック・フィックス: 基本クラスから静的フィールドを移動 (Quick Fix: Move static field from base class)」を クリックします。
  5. 選択した検索結果の「クイック・フィックス (Quick Fix)」ポップアップ・メニュー



クイック・フィックスの適用

選択した循環依存関係のクイック・フィックスでは、基本クラスから別の クラスに静的フィールドを移動します。フィールドの移動先には、既存のクラスまたは 新規クラスを選択できます。

新規クラスにフィールドを移動するには、以下のようにします。

  1. 次の画面取りで、修正する循環依存関係 (交錯ともいわれます) に関する 読み取り専用の情報を確認します。
  2. 「新規 Java クラスの生成 (Generate a new Java class)」を クリックして、次のように入力します。
  3. コードの移動先のクラスの指定

  4. 「プレビュー」をクリックして、クイック・フィックスが変更する コードを確認します。
  5. 次の画面取りに示されているように、「実行する変更内容 (Changes to be performed)」リストを展開して、静的フィールドを新規クラスに 移動したときにクイック・フィックスが行う正確な変更内容を確認します。
  6. 実行する変更内容 (Changes to be performed)

  7. Font.java で始まるリストの 4 番目の変更点をクリックして、コードの 横並びのビューを表示します。元のコードは左側にあり、クイック・フィックスによって 作成されるリファクタリング済みコードは右側にあります。
  8. 選択した変更点の元のコードとリファクタリング済みコード

  9. 「OK」をクリックして、リストで選択したすべての変更点に クイック・フィックスを適用します。
  10. クイック・フィックスを適用すると、問題が解決されたことがわかるように、 確認のチェック・マークが表示されます。
  11. 解決された検出結果の隣にチェック・マークが付いたコード・レビュー

『演習 1.4: 構造上の問題の解決』が完了しました。



クイック・フィックスの利点の利用

クイック・フィックスは、コード・レビューの幾つかの共通する検出結果のために 提供されます。提供されたクイック・フィックスを適用することによって、 自動化された方法で循環依存関係を解決できます。以下のことを行うことができます。



演習 1.4 の要約

『演習 1.4: 構造上の問題の解決』が完了しました。この演習では、 次のタスクを実行しました。

  1. コード・レビューを実行して、循環依存関係を見つける。
  2. 循環依存関係にクイック・フィックスが提供されていることを認識する。
  3. クイック・フィックスを適用して、循環依存関係を解決する。
  4. クイック・フィックスが適用されたことを確認する。

要約』の学習目標を確認して、チュートリアルを 完了します。



フィードバック
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005