AI 製品は現代のソフトウェア開発やコーディングに革命をもたらしました。 AIを活用することでプログラミングコードを自動生成し、修正・最適化することができます。 コードのリファクタリング。 この記事では、リファクタリング プロセスを調査し、その方法を説明します。 Copilot を使用してコードをリフラクタリングする。
コードリファクタリングとは何ですか?
ソフトウェアまたはアプリケーション開発において、コード リファクタリングとは、元の機能を維持しながらプログラムのソース コードを再構築または再配置することを指します。 このプロセスは、ソフトウェアの構造と設計を改善し、複雑さを軽減することを目的としています。 AI をコード リファクタリングに統合することで、ソフトウェアのパフォーマンスの問題を迅速に特定し、複雑なアルゴリズムを容易にして全体の効率を向上させることができました。
Copilot はコードのリファクタリングにどのように役立ちますか?
コードの特定のセクションを分析し、その構造をよりクリーンでユーザーフレンドリーな形式に改善して複雑さを軽減するための提案を提供します。 提供される推奨事項は以下に基づいています。
- 既存のコードの問題を特定します。 Copilot はコード ファイル全体をスキャンし、重複コード、未使用または不明瞭な変数などを指摘することで、リファクタリングするセクションや領域を強調表示します。
- 効率的なオプションを提案します。 コードをリファクタリングするとき、Copilot は既存のコードを分析し、同じ結果を生成しながらコードをよりきれいに見せる効果的な代替案を提案します。 これらの推奨事項には、変数、メソッド、データ構造に名前を付けるための効率的な言語の使用が含まれます。
- 保守可能なコードを確保します。 リアルタイムのフィードバックは、バグの混入を避けるのに役立ちます。 これらの提案は通常、適切なコード構造を維持するのに役立つプログラミング原則のベスト プラクティスに基づいており、他の人が理解しやすく、必要に応じて変更することが容易になります。
Copilot を使用してコードをリフラクタリングする方法
リファクタリングに Copilot を使用するには、まず、該当する言語 (VS Code、Python など) の GitHub Copilot 拡張機能をインストールします。 たとえば、Python で書かれたソース コードを再構築したい場合は、次の方法で Copilot プラグインをインストールできます。
- クリックして、統合開発環境または IDE (JavaScript または Python) で[設定]オプションを開きます。
- 左側のプラグインオプションをクリックします。
- クリックしてください 市場 オプションを選択して検索します GitHub コパイロット プラグイン。
- 見つかったら、をクリックします インストール プラグインをインストールします。
- インストールが完了すると、IDE は再起動を求めるプロンプトを表示します。 再起動後、IDE を開いて、 [ツール]->[GitHub Copilot]-> GitHub にログインします。
- ログインに成功すると、Copilot を使用できるようになります。
- Copilot を使用するには、コードの作成中に以下のショートカットを使用できます。
アクション | Windows/Linux | マックOS |
インライン提案をトリガーする | Alt+\ | オプション+\ |
次の提案を参照してください | Alt+) | オプション+) |
前の提案を参照してください | Alt+( | オプション+( |
提案を受け入れる | タブ | タブ |
インライン提案を却下する | ESC | ESC |
すべての提案を新しいタブに表示する | Alt+Enter | Alt+Enter |
関連している: GitHub からダウンロードしたコードを表示する方法
例 1: 複雑なコードを単純化するには
Copilot のリファクタリング機能を使用して複雑なコードを簡素化する方法を示すために、以下のコード スニペットを考えてみましょう。 ここでは、理解を容易にするために、より大きなプログラムの一部のみを考慮します。
リファクタリング前
public void processOrder(Order order) { // ... further codes if (order.isReadyForProcessing()) { // process the order } //... further codes }
Copilot によるリファクタリング後
public void processOrder(Order order) { // ...further codes processReadyOrder(order); // ...further codes }
private void processReadyOrder(Order order) { if (order.isReadyForProcessing()) { // process the order } }
上記の例では、最初のコード セット (リファクタリング前) は、という名前の関数またはメソッドで構成されています。 プロセス注文、 特定の注文を処理するためのステップを実行します。 注文が処理される前に、条件付き IF ステートメントは注文が処理の準備ができているかどうかをチェックします。 if (order.isReadyForProcessing()) 関数。 このコード セットでは、処理ロジックが主関数内に含まれているため、モジュール性が低くなります。
次のコード スニペットには、 プロセス注文 注文を処理する機能。 ただし、注文が処理の準備ができているかどうかを確認し、準備ができた注文を処理するロジックは、という名前の別の関数に移動されました。 プロセス準備完了注文。 これは、各メソッドを分離してコードを明確にし、モジュール化するのに役立ちます。
例 2: 変数の名前変更
リファクタリング前
def calculate_area(l, w): return l * w
Copilot によるリファクタリング後
def calculate_area(length, width): return length * width
ただし、リファクタリング後、変数「l」と「w」は長さと幅に置き換えられ、リファクタリングの重要な機能である変数の名前変更によってコードの明瞭さが増しました。
Copilot はコードの再構築に役立ちますが、誤った提案、過剰依存、古いコードの反映など、いくつかの制限があります。 提案を受け取ったら、すべての手動チェックを必ず通過し、適切なプロンプトを使用してください。
GitHub Copilot はどのデータに基づいてトレーニングされましたか?
GitHub Copilot は、GitHub のパブリック リポジトリのコードを含む、公開されているソースからの自然言語テキストとソース コードでトレーニングされています。 GitHub、OpenAI、Microsoft が開発した生成 AI モデルを利用しています。
Copilot と互換性のあるプログラミング言語は何ですか?
Github Copilot はさまざまな言語をサポートしていますが、特に JavaScript、TypeScript、Ruby、Python、Go、C++、および C# でうまく動作します。