BaliseTonSite

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

Template composantmarkdown
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 :

Exemple concret : composant Avatarmarkdown
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

Template hookmarkdown
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

Template API route (Next.js App Router)markdown
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é

Les types sont corrects (pas de any)
Les noms de variables sont clairs
Pas de code mort ou commenté
Les imports sont corrects

Robustesse

Les erreurs sont gérées
Les edge cases sont couverts
Pas de fuite mémoire (cleanup)
SSR safe (pas de window/document)

À 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]".

Verifie tes acquis

5 questions pour valider ce chapitre

1. Quel est le meilleur prompt pour générer un composant React ?

Valide et sauvegarde ce chapitre

Ne perds pas le fil de ton apprentissage. Chaque QCM terminé sauvegarde ton score. Crée ton profil gratuitement pour débloquer toutes les évaluations du site et retrouver tes résultats plus tard.

Commencer l'aventure
Déjà membre ?Connecte-toi