# Refactoring de code

La refactorisation consiste à modifier le code existant afin d'améliorer la qualité et la maintenabilité du code, sans modifier la fonctionnalité du code.

Grâce à GitHub Copilot, il est facile de réaliser une refactorisation de code. GitHub Copilot peut comprendre la structure du code et proposer des suggestions de refactorisation recommandées. Par exemple, si nous avons le code suivant :

```py
def calculate_sum(numbers):
    total = 0
    for number in numbers:
        total += number
    return total
```

Nous pouvons utiliser GitHub Copilot pour refactoriser ce code. Voici un exemple de suggestion de refactorisation proposée par GitHub Copilot : Le code a été réécrit pour utiliser la fonction `sum()` pour calculer la somme des éléments d'une liste. En outre, les types d'arguments et de retour sont désormais explicites.

```py
# Écrivez ci-dessous la fonction calculate_sum() refactorisée
def calculate_sum(numbers):
    return sum(numbers)
```

Il est possible de commenter explicitement ces fonctionnalités pour les commander à GitHub Copilot ou pour effectuer la refactorisation de manière plus interactive avec des outils tels que ChatGPT. Ainsi, GitHub Copilot peut proposer des suggestions de refactorisation pour améliorer la qualité du code. Les développeurs peuvent examiner ces suggestions et modifier manuellement le code si nécessaire. Cette refactorisation peut améliorer la maintenabilité du code et permettre aux développeurs de coder plus efficacement.

Il est essentiel d'écrire des tests avant de refactoriser le code. Si des tests sont écrits, il est possible de vérifier si le code refactorisé fonctionne de la même manière que le code original. En particulier, si vous comptez sur des outils d'IA pour refactoriser, GitHub Copilot peut proposer des façons de coder que vous ne connaissez pas habituellement. Bien que ces propositions puissent être excellentes d'un point de vue général, elles peuvent ne pas convenir à vous ou à votre organisation.

D'autre part, GitHub Copilot peut aider à soutenir la pratique de développement piloté par les tests (TDD). Le TDD consiste à écrire les tests avant de coder, puis à écrire du code pour que les tests réussissent. Cette méthode permet aux développeurs d'écrire du code de qualité qui passe les tests.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ai-native-development.gitbook.io/archived/french/basique/refactoring.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
