AI製品は、現代でソフトウェア開発またはコーディングに革命をもたらしました。 AIを使用して、プログラミングコードを自動的に生成し、それらを修正および最適化できますコードリファクタリング。この記事では、リファクタリングプロセスを調査し、どのようにできるかを確認しますCopilotを使用して屈折コードを使用します。
コードリファクタリングとは何ですか?
ソフトウェアまたはアプリケーション開発では、コードリファクタリングとは、元の機能を維持しながら、プログラムソースコードの再構築または再配置を指します。このプロセスは、ソフトウェアの構造を改善し、設計し、複雑さを軽減することを目的としています。 AIのコードリファクタリングへの統合により、ソフトウェアのパフォーマンスの問題を迅速に特定し、複雑なアルゴリズムを容易にして、全体的な効率を向上させました。
Copilotはコードのリファクタリングにどのように役立ちますか?
コードの特定のセクションを分析し、その構造をよりクリーンでユーザーフレンドリーな形式に改善して、複雑さを減らすための提案を提供できます。提供される推奨事項は、以下に基づいています。
- 既存のコードの問題を特定します。Copilotは、コードファイル全体をスキャンして、重複したコード、未使用または不明確な変数などを指摘することにより、リファクタリングするセクションまたは領域を強調表示します。
- 効率的なオプションを提案します:コードをリファクタリングするとき、Copilotは既存のコードを分析し、同じ結果を生成できるがコードの外観をクリーンにする効率的な代替案を提案します。これらの推奨事項には、変数、メソッド、およびデータ構造の命名に効率的な言語使用が含まれます。
- 保守可能なコードを確保します:リアルタイムのフィードバックは、バグを含めることを避けるのに役立ちます。提案は一般に、適切なコード構造を維持するのに役立つプログラミング原則のベストプラクティスに基づいており、他の人が必要に応じて同じことを理解し、変更しやすくします。
リファクタリングにCopilotを使用するには、最初から始めることができますgithubのインストール関係する言語の副操縦士拡張(VSコード、Pythonなど)。たとえば、Pythonで記述されたソースコードを再構築する場合は、次のようなCopilotプラグインをインストールできます。
- クリックして、統合開発環境またはIDE(JavaScriptまたはPython)で設定オプションを開きます。
- 左側のプラグインオプションをクリックします。
- をクリックします市場オプションと検索Github Copilotプラグイン。
- 位置したら、クリックしてくださいインストールプラグインをインストールします。
- IDEは、インストールが完了すると再起動を求めます。再起動後、IDEを開いてクリックしますツール - > github copilot-> githubにログインします。
- ログインが成功した後、Copilotは使用できるようになります。
- Copilotを使用するには、コードの作成中に以下のショートカットを使用できます
アクション | Windows/Linux | macos |
インラインの提案をトリガーします | 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 }
副操縦士とのリファクタリング後
public void processOrder(Order order) { // ...further codes processReadyOrder(order); // ...further codes }
private void processReadyOrder(Order order) { if (order.isReadyForProcessing()) { // process the order } }
上記の例では、最初のコードセット(リファクタリングの前)は、名前付きの関数またはメソッドで構成されていますProcessOrder、特定の注文を処理する手順を実行します。注文が処理される前に、条件付きのIFステートメントは、注文が処理の準備ができているかどうかを確認しますif(order.isreadyforprocessing())関数。この一連のコードでは、処理ロジックがプライマリ関数内に含まれており、モジュラーが少なくなります。
次のコードスニペットには、がありますProcessOrder順序を処理する機能。ただし、注文が処理および処理の準備ができているかどうかを確認するロジックが準備ができている注文の名前が別の関数に移動されましたprocesseadedordory。これにより、各メソッドを分離して、コードに明確さとモジュール性を提供します。
例2:変数の名前変更
リファクタリングする前に
def calculate_area(l, w): return l * w
副操縦士とのリファクタリング後
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#で特にうまく機能します。