AI を使用して開発者の生産性を向上させる

完了

背景が黒い GitHub Copilot アイコンのメタリック バージョンの図。

このユニットでは、GitHub Copilot によって開発ワークフローがどのように効率化されるのかを調べます。開発者は、きまりきったコーディング タスクに煩わされることなく、複雑な問題の解決に集中できます。

このユニットを完了すると、次のことができるようになります。

  • GitHub Copilot のような AI 搭載ツールを使うと、コーディング作業の繰り返しをどのように減らすことができるかを理解します。
  • 開発者のワークフローで、GitHub Copilot が最も大きな影響を与えることができる重要な領域を明らかにします。

開発者の生産性を効率化するための一般的な AI ユース ケース

GitHub Copilot には、一般的な開発タスクの時間を短縮して簡単にするためのさまざまな方法が用意されています。 GitHub Copilot が特に有益であることがよくわかる重要な領域をいくつか見てみましょう。

新しいプログラミング言語とフレームワークの習得を速める

新しいプログラミング言語やフレームワークの学習は困難な場合がありますが、GitHub Copilot を使うと、このプロセスがいっそう円滑になって時間が短縮され、開発者は新しい概念をすばやく把握して、実務に適用できます。 GitHub Copilot の次の機能は、学習と実践のギャップを埋めるのに役立ちます。

  • コードの提案: 馴染みのない関数やライブラリの使い方がわかるコンテキストに即したコード スニペットの提案を提供して、開発者が新しいフレームワークで作業するときに適切に使用や実装できるようにします。
  • 言語のサポート: さまざまな言語をサポートし、開発者がある言語から別の言語にスムーズに移行するのを助けます。
  • ドキュメントの統合: GitHub Copilot が提供する API の使い方と関数のパラメーターに関連する提案を見ると、外部のドキュメントをその都度参照しなくてもよくなります。

例を見てみましょう。 使い慣れない言語で Golang プロジェクトの作業を行っているところを想像してみてください。 GitHub Copilot を使うと、コードを自動的に生成できます。 その後、コンテキスト メニューの [これを説明する] オプションを使って、コードで行われていることを理解できます。

学習の迅速化のスクリーンショット。

コンテキストの切り替えを最小限に抑える

コンテキストの切り替えは、開発者にとって生産性を大幅に低下させるものであり、ワークフローが中断されて、集中力が低下します。 GitHub Copilot を使うと、現在のコンテキスト内で関連するコードの提案が提供されるので集中力を維持するのに役立ち、複雑な問題の解決に専念できます。 その実現には、GitHub Copilot の次の機能が役立ちます。

  • エディター内のアシスタンス: GitHub Copilot はコードの提案を IDE 内で直接提供するので、解決方法をオンラインで検索する必要性が最小限になります。
  • クイック リファレンス: API またはライブラリを使っているとき、GitHub Copilot はメソッドの正しい呼び出しとパラメーターを提案できるので、ドキュメントを調べる必要性が減ります。
  • コード補完: 繰り返されるコード パターンが GitHub Copilot によってオートコンプリートされるので、開発者は思考の流れを中断されずに維持できます。

次の例では、外部のリソース (API やライブラリなど) をコード内で操作できるため、エディターを離れてドキュメントを調べる必要がないことに注目してください。 これにより、貴重な時間が節約され、いっそう戦略的なタスクに集中できるので、全体的な生産性が向上し、プロジェクトをより速くデリバリーできます。

コンテキスト切り替えの最小化のスクリーンショット。

ドキュメントの記述の改善

GitHub Copilot を使うと、コードのドキュメントの記述と保守のプロセスが大幅に改善されます。

  • インライン コメント: 複雑なコード セクションを説明する、コンテキストについて関連性のあるインライン コメントを生成します。
  • 関数の説明: パラメーターの説明や戻り値の詳細など、関数の説明を自動的に提案します。
  • README の生成: プロジェクトのコードベースに基づいて構造と内容を提案し、プロジェクトの README ファイルの作成を支援します。
  • ドキュメントの整合性: プロジェクト全体で一貫したドキュメント スタイルを維持するのに役立ちます。

GitHub Copilot を使うと、コードを統一でき、関数やコード全体に関連するコメントやドキュメントを記述するのに役立ちます。

ドキュメントの記述の改善のスクリーンショット。

退屈な作業を自動化する

GitHub Copilot は、定型のコーディング タスクの処理に優れており、開発者が作業のより複雑で創造的な部分に集中するための時間が増えます。 次のようにして、GitHub Copilot を自動化に活用できます。

  • 定型コードの生成: GitHub Copilot は、REST API の設定やクラス構造の作成など、一般的な機能の定型コードをすばやく生成できます。
  • サンプル データの作成: テストでは、GitHub Copilot を使って現実的なサンプル データを生成し、手動でデータを作成する時間を節約できます。
  • 単体テストの作成: GitHub Copilot はテスト ケースを提案したり、提案したコードに基づいて単体テスト全体を生成したりできます。
  • コードの変換とリファクタリング: GitHub Copilot は、改善されたパターンやより効率的な実装を提案し、プログラミング言語の変換さえ行って、コードのリファクタリングを支援します。

GitHub Copilot を使って定型コードを生成して、開発プロセスの時間を短縮し、後で特定のニーズに合わせてそれをカスタマイズできます。

退屈な作業の自動化のスクリーンショット。

高度な定型自動化シナリオ

GitHub Copilot では、通常、大量の手動作業を必要とする、より高度な自動化タスクを処理できます。

  • データベース スキーマと ORM のセットアップ: 単純なエンティティの説明に基づいて、完全なデータベース モデル、移行ファイル、および ORM 構成を生成します。
  • API エンドポイントスキャフォールディング: 適切なエラー処理、検証、およびドキュメント コメントを使用して、REST API エンドポイント全体を作成します。
  • 構成管理: 適切な設定を使用して、さまざまな環境 (開発、ステージング、運用) の構成ファイルを生成します。
  • テスト インフラストラクチャ: 複雑なテスト シナリオ用のモック データ、フィクスチャ、ヘルパー関数を含む完全なテスト フレームワークを設定します。

たとえば、新しいマイクロサービスを構築する場合、Copilot は、サービス要件に関するいくつかの説明的なコメントに基づいて、Docker 構成、CI/CD パイプライン ファイル、基本的な監視設定など、プロジェクト構造全体を生成できます。

複雑なマルチファイル世代では、より多くの PRU (プロジェクトスキャフォールディングを完了するために最大 3 ~ 5 個の PRU) が消費されます。 単純な定型タスクでは、通常、1 から 2 個の PRU が使用されます。 Premium リクエスト ユニットについてさらに学んでください。

ストーリー駆動型の開発の自動化

GitHub Copilot は、シンプルなユーザー ストーリーと機能要件を完全な運用対応の実装に直接変換することに優れています。

  • 機能スキャフォールディング: データベース モデル、API エンドポイント、フロントエンド コンポーネントなど、懸念事項を適切に分離して、高度な機能の説明を完全なコード構造に変換します。
  • ビジネス ロジックの実装: プレーン言語で記述されたビジネス ルールに基づいてコア機能を生成し、検証、データ変換、ワークフロー ロジックなどの一般的なパターンを自動的に処理します。
  • 統合パターン: 認証、ログ記録、外部サービス統合など、アプリケーション エコシステムのさまざまな部分を接続するための標準化されたパターンを作成します。
  • エンドツーエンドの自動化: 単一のユーザー ストーリーから、バックエンド ロジック、データベースの変更、API ドキュメント、基本的なフロントエンド実装など、完全な機能スタックを生成します。
  • 品質の組み込み: 最初の実装の一部として、エラー処理、入力検証、ログ記録、および基本的なセキュリティに関する考慮事項を自動的に含めます。

このアプローチにより、概念から作業プロトタイプまで迅速にイテレーションが可能になり、チームはアイデアを迅速に検証し、開発プロセスの早い段階でフィードバックを収集できます。

pull request ワークフローの高速化

GitHub Copilot は、レビュー対応の変更を生成し、開発からデプロイまでの時間を短縮することで、pull request プロセスを変換します。

PR 対応コードの生成

機能やバグ修正に取り組む場合、Copilot はレビュー サイクルを最小限に抑える包括的な変更を作成するのに役立ちます。

  • 完全な実装: 適切なエラー処理、ログ記録、エッジ ケース カバレッジを使用して、完全な機能実装を生成します。
  • 一貫性のあるコード パターン: 新しいコードが確立されたプロジェクト規則とアーキテクチャ パターンに従っていることを確認します。
  • ドキュメントの統合: 初期コード生成の一部として、インライン コメント、関数ドキュメント、および README 更新プログラムを含めます。
  • テスト 対象範囲: 新しい機能と共に、対応する単体テスト、統合テスト、および使用例を生成します。

インテリジェントなコード レビュー の支援

Copilot は、レビュー用のコードを準備し、レビュー プロセス自体の間に支援を行うのに役立ちます。

  • 提出前の品質チェック: PR を作成する前に、Copilot を使用して潜在的な問題を特定し、改善を提案し、コード品質基準が満たされていることを確認します。
  • コメントの下書きを確認する: 問題を明確に説明し、コード例を使用して具体的な改善を提案する建設的で具体的なレビュー コメントを生成します。
  • 迅速なイテレーション: レビュー担当者が変更を要求すると、Copilot は複数の実装の代替手段をすぐに生成できるため、作成者は広範な書き換えを行わずに最適なアプローチを選択できます。
  • ドキュメントの絞り込み: レビュー担当者の質問とフィードバックに基づいてコードコメントとドキュメントを自動的に改善し、将来の保守担当者にとって明確にします。
  • 競合の解決: 両方のコード ブランチの意図を理解し、最適な統合アプローチを提案することで、マージ競合の解決を支援します。

この合理化されたアプローチにより、必要なレビュー ラウンドの数が大幅に減り、コード品質の高い標準を維持しながら機能の配信を高速化できます。

PR で複数のリファクタリングドラフトを Copilot に依頼すると、ドラフトごとに 2 ~ 3 個の PRU を消費できます。 Premium 要求ユニットについてさらに知りたい場合は、ご確認ください。

コラボレーション開発ワークフロー

Copilot は、さまざまな開発者の貢献の一貫性と品質を確保することで、チームのコラボレーションを強化します。

  • コードの標準化: チーム メンバー間で一貫したコーディング スタイルとパターンを維持するのに役立ちます。
  • ナレッジ共有: チームのベスト プラクティスに従ってコードを生成し、ジュニア 開発者がシニア パターンから学習できるように支援します。
  • コンテキストの保持: 他のユーザーの作業を引き継ぐ場合、Copilot は既存のコードを理解し、同じスタイルで開発を続けることができます。
  • マージ競合の解決: 両方のコード ブランチの意図を理解することで、複雑なマージ競合の解決を支援します。

調整された AI ワークフロー

最新の開発では、開発プロセスのさまざまな側面で連携した AI 支援のメリットがますます得られます。 GitHub Copilot は、複数の AI 機能が相互に補完する調整されたワークフローの一部として機能できます。

マルチエージェント開発パターン

さまざまな AI エージェントが特徴開発のさまざまな側面を処理するワークフローを考えてみましょう。

  1. Draft エージェント: Copilot は、機能要件に基づいて初期コード実装を生成します
  2. エージェントを確認します。 セカンダリ AI は、コードの品質、セキュリティの問題、およびプロジェクト標準への準拠に関するドラフトをレビューします
  3. ドキュメント エージェント: コードの変更に基づいてドキュメントを自動的に生成または更新する
  4. テスト エージェント: 新しい機能の包括的なテスト スイートを作成します

この調整されたアプローチにより、高品質の標準を維持しながら、開発タスクを包括的にカバーできます。 各エージェントは、そのドメインに特化したフォーカスを持ち込み、その結果、より完全で実稼働可能なコードになります。

各ハンドオフは最大 1 PRU を消費します。 2 エージェントのドラフト レビュー フローでは、通常、2 ~ 3 個の PRU が使用されます。

高度な推論機能

複雑な開発シナリオの場合、GitHub Copilot には、より詳細な分析とより高度なコード生成を提供するプレミアム推論モードが用意されています。

  • コンテキストの理解の強化: より大きなコードベースとコンポーネント間のより複雑なリレーションシップを分析します
  • 高度なアーキテクチャの提案: システム設計と統合パターンに関する推奨事項を提供します
  • 複雑なリファクタリングの支援: 機能を維持しながら高度なコード変換を処理する
  • 複数ファイルの調整: 一貫性を維持しながら、複数のファイル間で変更を調整する

Premium の実行により、コンテキストと推論が増えますが、多くの場合、PRU 消費量が 2 倍になります (要求あたり最大 4+ )。

自動ストーリー補完ワークフロー

GitHub Copilot では、自動化されたワークフローを使用して、ユーザー ストーリーと要件を完全でデプロイ可能な機能に変換できます。

  • 要件の解析: ユーザー ストーリーと受け入れ条件を分析して実装計画を生成する
  • 機能スキャフォールディング: コントローラー、サービス、モデル、テストなどの完全な機能構造を作成する
  • 統合のセットアップ: 新しい機能を既存のシステム コンポーネントと統合するために必要なコードを生成する
  • 品質保証の自動化: 新機能の包括的なエラー処理、ログ記録、監視を含める

このアプローチにより、概念から動作するソフトウェアへの迅速な進行が可能になり、アイデアと実装の間の時間が大幅に短縮されます。

コード補完のカスタマイズ

GitHub Copilot は、個別のコーディング スタイルとプロジェクト コンテキストに適応するので、時間が経つほど提案の関連性が高くなり、コードの効率が向上します。 GitHub Copilot は次のようにしてコード補完のカスタマイズを実現します。

  • コンテキストの理解: GitHub Copilot は開発環境とプロジェクトの構造を分析し、より正確で関連性の高いコード補完を提供します。
  • パターンからの学習: 開発者がプロジェクトで作業している間、GitHub Copilot はそのコーディング パターンと好みを学習し、それに応じて提案を調整します。

次の例では、GitHub Copilot は関数の記述のスタイルを提案していますが、好みのスタイルが使われると、好みのスタイルに適応して提案を続けることに注意してください。

コード補完のカスタマイズのスクリーン。

これらの方法で GitHub Copilot を活用すると、開発者は定型的なタスクに費やす時間を大幅に短縮し、新しいテクノロジをより短い時間で習得して、作業中の集中力をいっそう高く維持できます。 この生産性の向上により、複雑な問題の解決とプロジェクト内での革新に専念する時間を増やすことができます。

次のユニットでは、GitHub Copilot が開発者の一般的な好みやワークフローにどのように対応するのかを調べていきます。