09 Productivité développeur
Données d’exemple et modernisation du code legacy
9.5 Génération de sample data 🧪📦
Définition
La sample data est de la donnée d’exemple utilisée pour :
- tests ;
- démos ;
- développement local ;
- documentation ;
- prototypage ;
- seed database ;
- validation d’interface ;
- simulation de cas métier.
Copilot peut générer :
- objets JSON ;
- fixtures ;
- données SQL ;
- fichiers CSV ;
- mocks ;
- exemples d’événements ;
- payloads API.
Exemple JSON
Prompt :
Generate sample JSON data for 5 users.
Requirements:
- include id, name, email, role, createdAt
- roles: admin, user, viewer
- use fake data only
- do not use real personal dataRéponse possible :
[
{
"id": "user_001",
"name": "Alice Martin",
"email": "alice.martin@example.com",
"role": "admin",
"createdAt": "2026-01-15T10:00:00Z"
},
{
"id": "user_002",
"name": "Noah Bernard",
"email": "noah.bernard@example.com",
"role": "user",
"createdAt": "2026-01-16T11:30:00Z"
}
]Exemple SQL seed
Prompt :
Generate SQL seed data for a products table.
Schema:
- id UUID
- name text
- price decimal
- status text
- created_at timestamp
Constraints:
- 10 rows
- realistic but fake data
- include active and inactive productsExemple fixtures de test
Prompt :
Generate pytest fixtures for User objects.
Include:
- active user
- deactivated user
- admin user
- user with missing optional profile fields
Use fake data only.Attention aux données réelles
Ne jamais demander :
Generate sample data based on our real customer export.Mieux :
Generate fake sample data with the same schema as this anonymized example.À retenir
Copilot est très utile pour générer de la sample data, mais elle doit être fictive, sûre et adaptée au schéma.
9.6 Modernisation de code legacy 🏗️
Définition
Moderniser du code legacy signifie améliorer une ancienne base de code pour la rendre :
- plus lisible ;
- plus maintenable ;
- plus testable ;
- plus sécurisée ;
- compatible avec des versions récentes ;
- alignée avec les pratiques actuelles.
Copilot peut aider à :
- comprendre le legacy ;
- identifier les risques ;
- proposer un plan ;
- générer des tests avant refactoring ;
- migrer une syntaxe ;
- remplacer des APIs obsolètes ;
- améliorer le typage ;
- découper de grosses fonctions.
Exemple JavaScript ancien
Code :
function getUsers(callback) {
db.query("SELECT * FROM users", function(err, result) {
if (err) {
callback(err);
} else {
callback(null, result);
}
});
}Prompt :
Create a plan to modernize this callback-based function to async/await.
Preserve behavior.
Do not modify code yet.
Include tests to add before migration.Puis :
Refactor this function to async/await.
Preserve error behavior.
Use the existing db client.
Add Jest tests.Exemple Python legacy
Code :
def get_user(id):
query = "SELECT * FROM users WHERE id = " + id
return db.execute(query)Prompt :
Modernize this function safely.
Goals:
- prevent SQL injection
- add type hints
- preserve behavior
- use parameterized queries
- suggest tests
Do not introduce new dependencies.Pourquoi ne pas demander directement “rewrite” ?
Parce que le legacy contient souvent :
- comportements implicites ;
- hacks historiques ;
- dépendances cachées ;
- bugs devenus “features” ;
- règles métier non documentées.
Une réécriture brutale peut casser la production.
Bonne approche avec Copilot
- Explain the legacy code.
- Identify behavior to preserve.
- Add characterization tests.
- Create a refactoring plan.
- Change small parts.
- Run tests.
- Review diffs.
À retenir
Legacy code + Copilot = comprendre avant de modifier.
Question examen typique :
Une équipe veut moderniser du legacy code critique.
Quelle est la meilleure première étape ?
Bonne réponse :
Utiliser Copilot pour analyser le code, identifier le comportement existant et proposer un plan/tests avant modification.
À retenir pour le GH-300
- La sample data est fictive, minimisée et sans secret : le schéma utile ne justifie pas de partager des valeurs de production.
- Pour du legacy critique : comprendre, identifier le comportement à préserver, tester, planifier, puis modifier progressivement.
- Ask Mode et Plan Mode réduisent le risque avant une transformation large.
Pratique : Améliorer une demande à Copilot
Voici des prompts vagues. Réécris-en au moins quelques-uns pour qu’ils énoncent explicitement un objectif, du contexte, l’entrée concernée, des contraintes, le format attendu et des critères de validation. Aucune IA n’intervient : seule la complétude du prompt est analysée, à partir de sa formulation.
Prompt 1 sur 1
Prompt à améliorer
Generate user data like our customers.
Écris-le comme tu le saisirais dans Copilot Chat, en anglais (comme dans le cours) ou en français. Invente les détails utiles (langage, fichier, règle métier…).
Questions de la leçon
Chargement de la question…
Pour finir
À retenir
- La sample data est fictive, minimisée et sans secret : le schéma utile ne justifie pas de partager des valeurs de production.
- Pour du legacy critique : comprendre, identifier le comportement à préserver, tester, planifier, puis modifier progressivement.
- Ask Mode et Plan Mode réduisent le risque avant une transformation large.
Objectif GH-300
- Données d’exemple et code legacy (Generate sample data and modernize legacy code)
Achèvement
Il reste à faire : , .