paint-brush
Comment GitHub Copilot améliore la productivité des développeurs par Preeti Vermapar@rsystems

Comment GitHub Copilot améliore la productivité des développeurs par Preeti Verma

par R Systems4m1970/01/01
Read on Terminal Reader
Read this story w/o Javascript

Trop long; Pour lire

L'article gagnant de Preeti Verma de R Systems Blogbook Chapitre 1 explore comment GitHub Copilot améliore la productivité en automatisant les tâches de code, en aidant le débogage et en accélérant l'apprentissage des nouvelles technologies.
featured image - Comment GitHub Copilot améliore la productivité des développeurs par Preeti Verma
R Systems HackerNoon profile picture
0-item

Introduction

GitHub Copilot, alimenté par le Codex d'OpenAI, est un assistant de codage alimenté par l'IA qui s'intègre parfaitement aux ides populaires telles que Visual Studio Code, JetBrains et Neovim. En analysant le contexte, les commentaires et le code existant, Copilot fournit des suggestions en temps réel, allant des autocomplétations à une seule ligne aux fonctions entières, accélérant considérablement les workflows de développement.


  1. Réduisez le code de boilerplate.
  2. Apprenez de nouveaux frameworks/languages plus rapidement.
  3. Debug et document efficacement.
  4. Streamline collaboration.
  • Réduire le code de boilerplate.
  • Apprendre de nouveaux cadres/langages plus rapidement.
  • Débuter et documenter efficacement.
  • Collaboration en streaming.

  • 1. Accélérer les tâches répétitives

    1. accélérer les tâches répétitives

    Génération de code de Boilerplate

    Génération de code Boilerplate

    Copilot excelle dans la génération de structures de code répétitives, telles que:

    • Définitions de classe (par exemple, composants de réaction, modèles de données Python).
    • Endpoints API (par exemple, Flask, FastAPI).
    • Quêtes de base de données (par exemple, SQL, snippets ORM).
  • Définitions de classe (par exemple, composants React, modèles de données Python).
  • Définitions de classe
  • Endpoints API  (par exemple, Flask, FastAPI).
  • Pour les endpoints API
  • Requêtes de base de données (par exemple, SQL, snippets ORM).
  • Recherche de base de données

    Exemple :

    Exemple

    Un développeur tapant def create_user dans un fichier Python pourrait recevoir:


    python def create_user(username: str, email: str) -> Utilisateur: """Créer un nouvel utilisateur dans la base de données."" Utilisateur = Utilisateur(username=username, email=email) db.session.add(user) db.session.commit() retourner Utilisateur 
    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

    Impact :

    Précédent
    • Enregistre>30–50% des frappes de clavier (GitHub, 2022).
    • Réduit la charge cognitive pour les tâches quotidiennes.
  • Save 30–50% de frappes clés (GitHub, 2022).
  • 30 à 50 %
  • Réduit la charge cognitive pour les tâches quotidiennes.

  • 2. Context-Aware Code Completion

    2. Context-Aware Completion du code

    Copilot analyse :

    • Ouvrez les fichiers et les importations.
    • Noms variables et signatures de fonctions.
    • Commentaires et docstrings.
  • Ouvrir les fichiers et les importations.
  • Noms variables et signatures de fonctions.
  • Commentaires et docstrings.
  • Case d'utilisation:

    Case d'utilisation

    Dans un fichier JavaScript avec axios importés, tapez :


    javascript // Récupérer les données d'utilisateur à partir de l'API 
    javascript // Fetch user data from API


    Triggers Copilot pour suggérer :


    Javascript const response = wait axios.get('/api/users'); retourner la réponse.data; 
    javascript const response = await axios.get('/api/users'); return response.data;

    Avant-garde :

    Les avantages
    • Minimise context-switching à la documentation.
  • Minimise context-switching à la documentation.
  • Contexte de commutation


    3 Apprendre les nouvelles technologies

    3 Apprendre les nouvelles technologies

    Copilot agit comme un tutor en temps réel pour les langues/cadres inconnus.

    Exemple: Rust pour un développeur Python

    Exemple: Rust pour un développeur Python

    Un développeur a écrit :


    rust
    // Calculate factorial of n  
    
    rust // Calculate factorial of n


    Copilot suggère :


    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), } }

    Résultat :

    Résultat
    • Envoi plus rapide vers de nouvelles pistes.
    • Encourage l'expérimentation.
  • Envoi plus rapide vers de nouvelles pistes.
  • Encourage l’expérimentation.

  • 4. débogage et documentation

    4. débogage et documentation

    Docstrings générés automatiquement

    Docstrings générés automatiquement

    Pour une fonction Python :


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


    Copilot ajoute :


    python """ Calcule le prix réduit. Args: prix (float): prix original. réduction (float): pourcentage de réduction (0-1). Retours: prix final après réduction. """ 
    python """ Calculates the discounted price. Args: price (float): Original price. discount (float): Discount percentage (0-1). Returns: float: Final price after discount. """

    Résolution d'erreur

    Résolution d'erreur

    Copilot explique les erreurs courantes (par exemple,  TypeError, variable non définie) et suggère des corrections.


    5. Génération de test d'unité

    5. génération de test d'unité

    Copilot élabore des cas de test alignés avec des cadres de test communs (p. ex., pytest, Jest).

    Exemple :

    Example

    Pour une fonction :


    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 triggers :


    python def test_divide(): assert divide(10, 2) == 5 assert divide(0, 1) == 0 avec 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)

    Impact :

    Précédent
    • Améliore la couverture des tests avec un minimum d'effort.
  • Améliore la couverture des tests avec un minimum d'effort.
  • Test de couverture


    6. Assistance à la requête de base de données

    Aide à la requête de base de données

    Copilot simplifie les requêtes SQL/NoSQL :

    Exemple :

    Exemple

    Un commentaire comme :


    sql -- Obtenez des utilisateurs actifs créés en 2023 
    sql -- Get active users created in 2023


    Générations :


    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';

    Outils pris en charge:

    Outils pris en charge
    • SQLAlchemy, Django ORM, requêtes MongoDB.
  • SQLAlchemy, Django ORM, requêtes MongoDB.

  • 7 Collaboration et cohérence du code

    7 Collaboration et cohérence du code
    • Enforce les modèles: Docstrings cohérents, gestion des erreurs et style.
    • Aide à l'embarquement de nouveaux membres de l'équipe: Explique le code hérité via les commentaires.
  • Enforce les modèles: Docstrings cohérents, gestion des erreurs et style.
  • Réaliser les modèles
  • Aide les nouveaux membres de l'équipe à embarquer: Explique le code hérité via les commentaires.
  • Aide les nouveaux membres de l'équipe à embarquer


    Défis et atténuations

    Défis et atténuations

    Le défi

    Le défi

    Résistance

    Résistance à la violence

    Suggestions incorrectes

    Réviser toujours la logique manuellement.

    Risques de sécurité (par exemple, clés hardcodées)

    Évitez d'utiliser pour le code sensible.

    Répondre à la question

    Utiliser comme un aide, pas un substitut.


    Les avantages quantitatifs

    Quantitative Benefits
    • 55% plus rapide achèvement des tâches (GitHub, 2023).
    • 74% des développeurs rapporte une diminution de l'effort mental (Stack Overflow Survey, 2023).
  • 55% plus rapide finalisation des tâches (GitHub, 2023).
  • 55% plus rapide
  • 74% des développeurs ont signalé une diminution de l'effort mental (enquête Stack Overflow, 2023).
  • 74% des développeurs


    Conclusion

    Conclusion

    GitHub Copilot transforme la productivité des développeurs par:


    • Actant en tant que programmeur par paires 24/7.

    • Réduire le temps passé sur des tâches répétitives

    Challenge


    Incorrect suggestions

    Always review logic manuellement.

    Risques de sécurité (par exemple, des clés hardcodées)


    Évitez d'utiliser un code sensible.









    Challenge

    Incorrect suggestions


    Always review logic manuellement.


    Risques de sécurité (par exemple, des clés hardcodées)


    Évitez l'utilisation pour le code sensible.

    Over-reliance


    Utilisez comme un aide, pas un remplacement.

    Challenge

    Mitigation

    Défi

    Résistance

    Suggestions incorrectes

    Réviser toujours la logique manuellement.

    Suggestions incorrectes

    Réviser toujours la logique manuellement.

    Security risks (e.g., hardcoded keys)

    Avoid using for sensitive code.

    Risques de sécurité (par exemple, des clés hardcodées)

    Évitez d'utiliser pour le code sensible.

    Over-reliance

    Utiliser comme aide, pas comme substitut.

    Over-reliance

    Utiliser comme un aide, pas un substitut.

    .


    Réduire les barrières aux nouvelles technologies.


  • Actant en tant que programmeur par paires 24/7

  • .


    agir en tant que programmeur par paires 24/7.

    Programmeur par paires 24/7
  • Réduire le temps passé sur des tâches répétitives

  • .


    Réduire le temps passé sur des tâches répétitives

    .


    temps passé sur des tâches répétitives
  • La baisse des barrières aux nouvelles technologies.


  • Réduction des barrières aux nouvelles technologies Réduction des barrières


    Pour des résultats optimaux, combinez la vitesse de Copilot avec la supervision humaine

    pour assurer la qualité et la sécurité du code.


    surveillance humaine« HR »

    Cet article de Préeti Verma a remporté le 1er tour de R Systems Blogbook: Chapitre 1

    Cet article de Preeti Verma

    a remporté le 1er tour de R Systems Blogbook: Chapitre 1


    Prééti Verma« HR »