Générer du code propre avec l'IA
Composants, fonctions, API : obtiens du code propre du premier coup.
6.1Crafter vs looter
Dans les jeux, il y a deux façons d'obtenir de l'équipement. Le loot : tu ramasses ce que tu trouves, c'est aléatoire, c'est rarement ce qu'il te faut. Le craft : tu choisis tes matériaux, ta recette, et tu fabriques exactement ce dont tu as besoin.
Avec l'IA, un prompt vague c'est du loot. Un prompt structuré c'est du craft. On va crafter.
6.2Template : Générer un composant React
Crée un composant React [NomComposant] en TypeScript.
## Props
- [prop1] : [type] - [description]
- [prop2] : [type] - [description]
- [prop3?] : [type] - [description] (optionnel)
## Comportement
- [ce que fait le composant]
- [interactions utilisateur]
- [états à gérer : loading, error, empty]
## Style
- Tailwind CSS
- [responsive ? animations ? dark mode ?]
## Contraintes
- Pas de dépendance externe
- Server Component / Client Component ? (préciser)
- [accessibilité requise ?]
## Exemple d'utilisation
```tsx
<NomComposant prop1="valeur" prop2={42} />
```Ce template force l'IA à produire un composant complet, typé et cohérent. Voyons un exemple concret :
Crée un composant React Avatar en TypeScript.
## Props
- src : string - URL de l'image
- alt : string - texte alternatif
- size : "sm" | "md" | "lg" - taille (32px, 48px, 64px)
- fallback? : string - initiales si pas d'image (ex: "JD")
- status? : "online" | "offline" | "away" - indicateur de statut
## Comportement
- Si l'image ne charge pas, afficher les initiales sur fond coloré
- Le point de statut est positionné en bas à droite
- Transition douce au hover (léger scale)
## Style
- Tailwind CSS, forme ronde
- Responsive (pas de taille fixe en px, utiliser les classes Tailwind)
## Contraintes
- Pas de librairie d'images externe
- Accessible : alt sur l'img, aria-label pour le statut
- Client Component (gère le onError)6.3Template : Générer un hook custom
Crée un hook React [useNomHook] en TypeScript.
## Paramètres
- [param1] : [type] - [description]
- [options?] : { [clé]: [type] } - options de config
## Retour
- [valeur1] : [type] - [description]
- [fonction1] : [signature] - [description]
- [état1] : [type] - [description]
## Comportement interne
- [effet au montage ?]
- [cleanup au démontage ?]
- [dépendances du useEffect ?]
## Edge cases
- [que se passe-t-il si... ?]
- [SSR safe ?]
- [gestion d'erreurs ?]6.4Template : Générer une API route
Crée une API route Next.js 15 (App Router) pour [description].
## Endpoint
- Méthode : [GET | POST | PUT | DELETE]
- Path : /api/[path]
## Input
- [Body / Query params / URL params] :
[décrire la structure attendue]
## Output
- Succès (200) : { [structure] }
- Erreur validation (400) : { error: string }
- Non trouvé (404) : { error: string }
- Erreur serveur (500) : { error: string }
## Logique
- [étapes de traitement]
- [validation avec Zod]
- [interaction base de données]
## Sécurité
- [authentification requise ?]
- [rate limiting ?]
- [validation des inputs ?]6.5La checklist du code IA
Avant d'utiliser du code généré par l'IA, passe-le dans cette checklist mentale :
Qualité
Robustesse
À toi de jouer
Choisis un des 3 templates (composant, hook ou API route) et utilise-le pour quelque chose dont tu as besoin dans ton projet actuel. Compare le résultat avec ce que tu aurais obtenu en demandant vaguement "fais-moi un [truc]".