VE Web for Oracle - 自習ガイド

このドキュメントの目的

このドキュメントでは、サンプル アプリケーションで Visual Expert Web (VE Webと呼びます) を使用する方法について説明します。

  • コード解析において、基本的な機能をテストできます。
  • Visual Expert の AI サービスをお試し頂けます。
  • VE Web のコラボレーション機能を体験できます。一部のリンクでは、同僚があなたと共有したかのように、特定の結果を直接表示できます。

これらの機能をテストするために他のものをインストールする必要はありません。
必要なのはシンプルなブラウザとインターネット接続だけです。

1. VE Webへのアクセス

VE Web DEMO環境にアクセスする手順を次に示します。

  • 次のページを開きます: https://demo.visual-expert.com/
  • ログインウィンドウが表示されます。
  • 希望言語を選択します。
  • すでにアカウントをお持ちの場合は、ログインしてください。
  • アカウントをお持ちでない場合は以下を行ってください。
    1. メールアドレスとパスワードを入力してください。
    2. Novalys の連絡先に電子メール通知を送信します。
    3. Novalys担当者があなたのアカウントを有効化し、これによりVE Web にアクセスできるようになります。
Access VE Web Oracle

2. クイック ツアー

このブラウザに初めてログインする場合、VE Webはクイックツアーを表示します。

VE Web のユーザ インターフェイスが短いアニメーションで、数秒表示されます。
必要に応じて、メール(右上)をクリックして 「Guide Tour」 を選択すると、再度表示できます。

同様に、VE Web モジュールを初めて開くと、アニメーションが使用方法を説明します。
必要に応じて、infoボタン (右上) をクリックして再度表示できます。

Quick Tour

3. 既存コードの理解

Visual Expert はコードを説明して理解するために、技術的、論理的、機能的、総合的、詳細的など、複数の角度から機能を組み合わせています。

3.1 CRUD マトリクスの生成

複数のテーブルを使用する機能を理解する必要があるとします。
データがどのように操作されるかの理解のために、次の手順でCRUDマトリックスを生成します。

  • VE Webの 「code explorer」 モジュールを開くために、ここをクリックします
  • テーブル アイコンをダブルクリックすると、テーブル リストが表示されます。
  • テーブル “CUSTOMER” を選択します。
  • [Shift] キーを押下します。
  • テーブル “PRODUCT” を選択します。複数テーブルが選択されます。
  • ナビゲーション バー (左側) で、 “CRUD Matrix” をクリックします。
  • “CUSTOMER” テーブル下に表示される “CRUD Matrix” をクリックします。

3.2 コード内の参照

CRUD マトリックスは、コードとデータ間の関係を高いレベルで表示します。
コードレベルでより詳細なビューを取得するには、次の操作を行います。

  • プロシージャ “PRODUCT.ProductByCustomer” の行を見つけます。
  • “CUSTOMER” カラムの “R” の文字をクリックします。
  • エクスプローラー内に新しいビュー (タブ) が開かれます。
    ProductByCustomer プロシジャーには、CUSTOMER テーブルを参照する 3 つの SELECT ステートメントが含まれています。
  • 各選択ステートメントをクリックすると、コード内でクエリが強調表示されます。

3.3 AIサービスによる機能的な説明

Visual ExpertのAIサービスは、ビジネスの観点からオブジェクトを説明できます。
これにより、ビジネスアナリストなどの技術者以外の人でも、アプリケーションにおけるオブジェクトの役割を理解できるようになります。

  • 中央パネルでプロシジャー “ProductByCustomer” を選択します。
  • ナビゲーションバー — “AI Services”“Explain the business” をクリックします。
  • AIサービスはこのプロシジャーの機能的な説明を生成します。

3.4 AIサービスによるコード ロジックの説明

Visual Expert は、オブジェクトのロジックと主要な技術的特徴を説明できます。
この情報は、どのようにコードが記述されたかを開発者が理解するのに役立ちます。

  • 中央パネルでプロシジャー “ProductByCustomer” を選択します。
  • ナビゲーションバーのセクション “AI Services”“Explain the logic” をクリックします。
  • AIサービスはこのプロシジャーの技術的な説明を生成します。

3.5 AIサービスによるコード コメントの追加

Visual Expert はコメントを生成し、コード内に配置できます。
これにより、開発者はコードを読みやすく理解しやすくなります。

  • 中央パネルでプロシジャー “ProductByCustomer” を選択します。
  • ナビゲーションバーのセクション “AI Services”“Commenter” をクリックします。
  • AIサービスはコメントを含むコードの新しいバージョンを生成します。
  • 開発者は、このコードをアプリケーション内で使用するために、 ボタン (右上) を使用してこれをコピーできます。

3.6 AIサービスによるコードのドキュメント化

Visual Expert はコードの技術ドキュメントを自動生成します。これはコード構造の説明とコンポーネントに関する技術情報を提供します。

  • ツリー (中央のパネル) でプロシジャー “ProductByCustomer” を選択します。
  • ナビゲーションバーのセクション “Code Documentation”“Open Documentation” をクリックします。
  • ドキュメント モジュールは、プロシジャー “ProductByCustomer” を説明するページを表示します。

3.7 同僚との共有

特定のページを他の人と共有できます。
これにより、複数人が関与するアクションのコラボレーションが容易になります。
たとえば.....

注: CRUD マトリックスを共有するには、次の操作を行う必要があります。

  • 前記の説明に沿って CRUD マトリックスを生成します。
  • ボタン(マトリックスの右上)をクリックして、新しいブラウザウィンドウに移動します。
  • この新しいページの URL をコピーして同僚と共有します。

4. コード問題の修正

Visual Expert はコード解析中に、セキュリティ、バグ、品質、可読性、パフォーマンスなど、さまざまな種類の問題を検出します。これは、あなたがそれらの問題を確認し、優先順位を付け、修正するのに役立ちます。

まずはダッシュボードで概要を把握し、次に特定のカテゴリの問題を分析し、徐々にコードレベルへと進んでいき、問題のある命令を特定していきます。

その後、各問題を手動で修正するか、Visual ExpertのAIサービスに解決策を提案してもらうことができます。いずれの場合も、修正内容を決定するには人間の介入が必要です。Visual ExpertもAIサービスも、コードを直接変更することはありません。

4.1 コード検査結果の確認

  • コード検査モジュールを開くには、ここをクリックします
  • 見つかった問題の概要がダッシュボードに表示されます。
  • 優先カテゴリを確認できます。
    • たとえば、critical 問題には.....
      グラフ “Severity”“Critical” をクリックしてそれらを表示できます。
  • 新しいページでは重大な問題の詳細を説明します。

このリストで問題の例を調べることができます。

  • たとえば、“DBMS_OUTPUT.PUT_LINE should not be used” をクリックします。
    このルールは、Oracleのレガシー機能の使用を識別します。コードとそのパフォーマンスを最適化したい場合は、このルールを置き換える必要があります。
  • 開いたページには、この廃止された機能を使用しているオブジェクトが一覧表示されます。

4.2 コード内の問題の特定

その後、これらのオブジェクトの 1 つを調べて、問題がどこにあるかを確認できます。

  • たとえば、“GetAllOrders” をクリックします。
  • ページにはこのオブジェクトのコードが表示され、問題のある命令が強調表示されます。
  • この問題に関するドキュメントを参照するには、“More info” をクリックします。

4.3 問題のフィックス

開発者は特定された問題を手動で修正できます。
また、Visual ExpertのAIサービスに解決策の提案を尋ねることもできます。

  • をクリックします。
  • コード エクスプローラーに新しいビューが作成されます。
    これにはオリジナルのソースコードが含まれています。
  • 次に、AIサービスは、ソリューションを提案します。
    利用可能になったら、“Potential Solution” をクリックします。

右側に 2 つのパネルが表示されます。

  • 提案された変更の説明
  • 変更点を説明するコメント付きの解決策を含むコードのバージョン(緑色で強調表示)

開発者は、 ボタン (右上) を使用して、これをコピーしてアプリケーションに貼り付けることができます。

4.4 同僚との協力

複数人がコードの改善に貢献する場合、結果を共有できます。
例えば.....

  • 特定された問題を分析します。
  • 優先順位を決定し、修正すべき問題を他の人に引き継ぎます。

以下に共有可能なリンクの例をいくつか示します。

  • このページ はクリティカルな問題を表示します。
  • このページ には、廃止された機能 “DBMS_OUTPUT.PUT_LINE” を使用するオブジェクトが表示されます。
  • このページ は関数 “GetAllOrder” における問題について説明します。

5. パフォーマンスの改善

Visual Expert は、アプリケーションの速度を低下させているコードの部分を特定できます。

その後、以下の方法で最適化できます。

  • コードを手動で改善します。
  • Visual Expert の AI サービスに、最適化の提案を訊ねます。

いずれの場合も、これらの最適化を実装するには人間の介入が必要になります。
Visual Expert もその AIサービス も、コードを直接変更することはありません。

5.1 最も遅いオブジェクトの特定

たとえば、最も遅いプロシジャーをリストできます。

これには、Oracle によって自動的に生成された統計データを使用します (VE ドキュメントを参照)

  • VE Web「コード エクスプローラー」モジュールを開くには、 ここをクリックします
  • プロシジャーのルートを選択します。
  • ナビゲーション バーのセクション “Performance Analysis”“Slowest code” をクリックします。
  • 最も遅いプロシジャーは、平均実行時間に従ってリストされます。

大量のコードを含むプロシジャーの実行時間を細分化して、詳細に分析できます。例:

  • リストの 3 番目を選択します。
  • “Slowest code” をクリックします。
  • Visual Expert が実行時間をいくつかの要素に分解します。

5.2 コードの最適化

Visual ExpertのAIサービスはコードの最適化を提案できます。例えば.....

  • 前の結果で、最初のSelect文を選択します。
  • ナビゲーションバーのセクション “AI Services”“Optimize” をクリックします。
  • 右側に次の 2 つのパネルが表示されます。
    • 提案された最適化の説明
    • 変更点を説明するコメント付きの解決策を含むコードのバージョン(緑色で強調表示)
  • 開発者は、 ボタン (右上) を使用して、これをコピーしてアプリケーションに貼り付けることができます。

Visual Expert はその他のパフォーマンスを向上させる機能も提供できます。
以下に、自身でテストできる 2 つの例を示します。

5.3 欠落したインデックスの検出

Visual Expert は、データベース内の欠落しているインデックスを自動的に検出します。

  • それには、WHERE、GROUP BY、HAVING、または ORDER BY 句で使用されるカラムを検索します。
  • これらのカラムが既にインデックスされているかどうかを確認します。
  • それ以外の場合は、パフォーマンスを最適化するために、不足しているインデックスにそれらを追加します。

このリストは次の手順で生成できます。

  • VE Web「コード エクスプローラー」モジュールを開くには、 ここをクリックします
  • テーブル アイコンをダブルクリックして、テーブルのリストを開きます。
  • テーブル“CUSTOMER” を選択します。
  • ナビゲーション バーのセクション “Code Review”“Missing Indexes” をクリックします。

5.4 自動コード検査

一部の検査ルールはパフォーマンスに影響する実装を検出します。

  • このページで例を見る ことができます。
    これは、多くのテーブルに対して結合を実行する SQL コマンドをリストします。
  • たとえば、 このSQLクエリは4つのテーブルを結合 しています。
  • このリンクを、SQL を最適化する開発者に渡すことができます。
  • ボタンをクリックして、AI ソリューションをリクエストできます。

 

Visual Expert Web のその他リソース