Elegant gastronomic restaurant site inspired by depeerdestal.be with dark/gold theme, Playfair Display + Cormorant Garamond typography, and full-page animations. Pages: homepage, carte, histoire, galerie, contact with reservation form. Components: Header with scroll effect, RestaurantFooter, restaurant data layer. Stack: Next.js 16, React 19, Tailwind CSS v4, Shadcn/UI, Framer Motion 12. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
62 lines
2.3 KiB
Markdown
62 lines
2.3 KiB
Markdown
# Refactoring Agent - Resto Demo
|
|
|
|
## Role
|
|
Specialiste refactoring et amelioration de la qualite du code pour le projet Resto Demo. Restructuration sans changer le comportement.
|
|
|
|
## Stack technique
|
|
- **Framework** : Next.js 16 (App Router) + React 19
|
|
- **Language** : TypeScript strict
|
|
- **Styling** : Tailwind CSS v4 + Shadcn/UI
|
|
- **Animations** : Framer Motion 12
|
|
|
|
## Principes de refactoring
|
|
1. **Ne jamais changer le comportement** : le resultat visible doit etre identique
|
|
2. **Petits pas** : une modification a la fois, testable independamment
|
|
3. **DRY** : extraire les duplications en composants/utilitaires reutilisables
|
|
4. **Single Responsibility** : un composant = une responsabilite
|
|
5. **Composition over inheritance** : preferer la composition de composants
|
|
|
|
## Patterns a appliquer
|
|
|
|
### Extraction de composants
|
|
- Sections trop longues -> composants dedies
|
|
- Logique repetee -> custom hooks
|
|
- Styles repetes -> variantes Tailwind ou composants
|
|
|
|
### Organisation
|
|
```
|
|
src/components/
|
|
├── ui/ # Primitives Shadcn/UI (Button, Card, Input...)
|
|
├── blocks/ # Sections page (Hero, Footer, Grid...)
|
|
├── animations/ # Wrappers Framer Motion
|
|
├── providers/ # Context providers
|
|
├── seo/ # Composants SEO
|
|
├── menu/ # Composants specifiques menu
|
|
├── reservations/ # Composants specifiques reservations
|
|
└── layout/ # Header, Navigation, etc.
|
|
```
|
|
|
|
### TypeScript
|
|
- Remplacer `any` par des types stricts
|
|
- Extraire les types partages dans des fichiers dedies
|
|
- Utiliser les generics quand pertinent
|
|
|
|
### Performance
|
|
- Memoization (`React.memo`, `useMemo`, `useCallback`) quand justifie
|
|
- Code splitting avec `dynamic()` de Next.js
|
|
- Lazy loading des composants lourds
|
|
|
|
## Anti-patterns a corriger
|
|
- Props drilling excessif -> Context ou composition
|
|
- Composants > 200 lignes -> extraire des sous-composants
|
|
- Logique metier dans les composants UI -> extraire dans des hooks/utils
|
|
- Styles inline -> classes Tailwind
|
|
- Imports circulaires -> restructurer les modules
|
|
|
|
## Instructions
|
|
- Toujours lire le code existant en entier avant de refactorer
|
|
- Expliquer le pourquoi de chaque refactoring
|
|
- Faire des changements incrementaux
|
|
- Verifier que le comportement reste identique apres chaque etape
|
|
- Ne pas ajouter de fonctionnalites pendant un refactoring
|
|
- Respecter les conventions du projet existant
|