paint-brush
GitHub Copilot が Preeti Verma による開発者の生産性を向上させる方法@rsystems
新しい歴史

GitHub Copilot が Preeti Verma による開発者の生産性を向上させる方法

R Systems4m2025/04/10
Read on Terminal Reader

長すぎる; 読むには

R Systems Blogbook Chapter 1のPreeti Vermaの受賞記事では、GitHub Copilotがコードタスクを自動化し、デバッグを支援し、新しいテクノロジーの学習を加速させることによって生産性を向上させる方法について説明しています。
featured image - GitHub Copilot が Preeti Verma による開発者の生産性を向上させる方法
R Systems HackerNoon profile picture
0-item

紹介

GitHub Copilot は、OpenAI の Codex を駆動して、Visual Studio Code、JetBrains、Neovim などの一般的な IDE とシームレスに統合するAI 駆動のコーディングアシスタントです。文脈、コメント、既存のコードを分析することで、Copilot は、シングルラインの自動完成から全体の機能まで、リアルタイムの提案を提供し、開発ワークフローを劇的に加速させます。


  1. ボイラープレートコードを削減します。
  2. 新しいフレームワーク/言語をより速く学習します。
  3. デバッグとドキュメントを効率的に作成します。
  4. Reduce boilerplate code.
  5. 新しいフレームワーク/言語をより速く学ぶ。
  6. Debug and document efficiently.
  7. ストリームライン・コラボレーション。

  8. 1

1 繰り返し作業を加速する

ボイラープレートコード世代

ボイラープレートコード世代

Copilotは、以下のような繰り返しコード構造を生成することに優れています。

  • クラス定義 (例えば、Reactコンポーネント、Pythonデータモデル)。
  • APIエンドポイント (例えば、Flask、FastAPI)。
  • データベースクエリ (例えば、SQL、ORMスニッペット)。
  • クラス定義 (例えば、Reactコンポーネント、Pythonデータモデル)
  • クラスの定義
  • APIエンドポイント (例えば、Flask、FastAPI)APIエンドポイント
  • データベースクエリ (たとえば、SQL、ORMスニッペット)。データベースクエリ

    :

    Developer typing def create_user in a Python file could receive:


    python def create_user(username: str, email: str) -> User: """Create a new user in the database."" user = User(username=username, email=email) db.session.add(user) db.session.commit() return user 
    python def create_user(username: str, email: str) -> User: """Create a new user in the database.""" user = User(username=username, email=email) db.session.add(user) db.session.commit() return user

    インパクト:

    影響力
    • 30~50% キーストック(GitHub, 2022)。
    • 日常的なタスクのための認知負荷を減らす。
  • Save 30~50% of keystrokes (GitHub, 2022).
  • 30~50%
  • Cognitive load reduction for mundane tasks.

  • 2 Context-Aware Code Completion

    2 Context-Aware Code Completion

    コピロット分析:

    • ファイルを開いてインポートします。
    • Variable names and function signatures.
    • Comments and docstrings.
  • ファイルを開いてインポートします。
  • Variable names and function signatures.
  • コメントとドクストリング
  • 使用例:

    使用例

    In a JavaScript file with axios imported, typing:


    javascript // API 
    からユーザーデータを回収するjavascript // Fetch user data from API


    Triggers Copilot to suggest:


    javascript const response = wait axios.get('/api/users'); return response.data; 
    javascript const response = await axios.get('/api/users'); return response.data;

    優先順位:

    <強力>強力
    • Minimizes context-switching  to documentation.
  • Minimizes context-switching  to documentation.
  • コンテキストスイッチ


    3 新しいテクノロジー学習

    3 新しいテクノロジー学習

    Copilot は、未知の言語/フレームワークのリアルタイムチューターとして機能します。

    例:Rust for a Python Developer

    Example: Rust for a Python Developer

    A developer writes:



    rust // n 
    の factorial 計算rust // Calculate factorial of n


    Copilot がお勧めします:


    rust fn factorial(n: u32) -> u32 { match n { 0 => 1, _ => n * factorial(n - 1), } 
    rust fn factorial(n: u32) -> u32 { match n { 0 => 1, _ => n * factorial(n - 1), } }

    結果:

    結果
    • 新しいスタックへの加速。
    • 実験を奨励します。
    • Faster onboarding to new stacks.
    • 実験を奨励します。

    • 4 デバッグとドキュメンタリー

      4 デバッグとドキュメント

      自動生成ドックストリング

      自動生成ドックストリング

      For a Python function:


      python def calculate_discount(price: float, discount: float) -> float: 
      python def calculate_discount(price: float, discount: float) -> float:


      コピーパイロット追加:


      python """ 割引価格を計算します. Args: 価格 (float): オリジナル価格. 割引率 (float): 割引比率 (0-1). 返金: フロート: 割引後に最終価格. """ 
      python """ Calculates the discounted price. Args: price (float): Original price. discount (float): Discount percentage (0-1). Returns: float: Final price after discount. """

      エラー解析

      エラー解析

      Copilot では、一般的なエラー (TypeError, undefined variable) を説明し、修正を提案します。


      5.ユニットテスト・ジェネレーション

      5 ユニットテスト・ジェネレーション

      Copilotは、一般的なテストフレームワーク(たとえば、 pytest、 Jest)と一致したテストケースを草案します。

      :

      for a function:


      python def divide(a: float, b: float) -> float: return a / b 
      python def divide(a: float, b: float) -> float: return a / b


      Typing def test_divide トリガー:


      python def test_divide(): assert divide(10, 2) == 5 assert divide(0, 1) == 0 with pytest.raises(ZeroDivisionError): divide(1, 0) 
      python def test_divide(): assert divide(10, 2) == 5 assert divide(0, 1) == 0 with pytest.raises(ZeroDivisionError): divide(1, 0)

      インパクト:

      影響力
      • テストカバーを最小限の努力で改善します。
      • Improves test coverage with minimal effort.
      • テストカバー


        6 データベース クエリ サポート

        6 データベース クエリ サポート

        Copilot は SQL/NoSQL クエリを簡素化します:

        :

        A comment like:


        sql -- Get active users created in 2023 
        sql -- Get active users created in 2023


        Generates:


        sql SELECT * FROM users WHERE status = 'active' AND created_at >= '2023-01-01'; 
        sql SELECT * FROM users WHERE status = 'active' AND created_at >= '2023-01-01';

        サポートされているツール:

        サポートするツール
        • SQLAlchemy, Django ORM, MongoDB クエリ.
      • SQLAlchemy、Django ORM、MongoDBクエリ。

      • 7 コラボレーション&コード一貫性

        7 Collaboration & Code Consistency
        • パターンを強化:一貫したドクストリング、エラー処理、スタイル。
        • 新しいチームメンバーを搭載するのに役立ちます:コメントを通じて古いコードを説明します。
        • パターン強化: 一貫したドクストリング、エラー処理、スタイルパターン強化
        • 新しいチームメンバーを搭載するのに役立ちます: コメントで古いコードを説明します。新しいチームメンバーを搭載するのに役立ちます


          課題と緩和

          挑戦と緩和<テーブル>

          Challenge





          <


































































          チャレンジ

          チャレンジ

          チャレンジ

          チャレンジ









          トップページ

          ミトグラフ

          間違った提案

          常に手動で論理をレビューします。

          不適切な提案

          不適切な提案

          Always review logic manually.

          Always review logic manually.

          セキュリティのリスク(例えば、ハードコードキー)

          機密コードの使用を避ける。

          セキュリティリスク(ハードコードキーなど)

          セキュリティリスク(ハードコードキーなど)

          繊細なコードを使用しないでください。

          敏感なコードを使用しないでください。

          Over-reliance

          補助金として使用する。

          Over-reliance


          超過信頼性

          Help, not a substitute.


          Help as a helper, not a substitute.


          量の利点

          量的な利点
          • >55%速く タスク完了(GitHub, 2023)。
          • 74%の開発者 心理的努力の減少を報告した(Stack Overflow Survey, 2023)。
          • 55%速く タスク完了(GitHub, 2023)。55%速い
          • 開発者の74%が精神的努力の減少を報告した(Stack Overflow Survey, 2023)。74%の開発者


            結論

            結論

            GitHub Copilotは、開発者の生産性を変革しています:


          • Acting as a 24/7 pair programmer.

          • Acting as a 24/7 pair programmer.

            24/7パールプログラマー
          • 繰り返し作業に費やされる時間を減らす

          • Reducing time spent on repetitive tasks.

            time spent on repetitive tasks. 繰り返しのタスクに費やされた時間
          • 新技術への障壁を下げる

            新技術への障壁の低減Lowing Barriers ダウンロード


            最適な結果を得るには、コピロットのスピードと人間の監視を組み合わせ、コードの品質とセキュリティを確保します。人間の監視「hr」

            This article by シンガポール won Round 1 of R Systems Blogbook: Chapter 1

            This article by エリザベス・ヴェルマ won Round 1 of R Systems Blogbook: Chapter 1

            プリティ・ヴェルマ「hr」