Discussion

Planificateur de plan de développement pour ingénieur full-stack senior

De Wikiprompt, l’encyclopédie libre de prompts

Watson Charlie
Contribué parWatson CharlieSource

10 mars 2026

Planificateur de plan de développement pour ingénieur full-stack senior Invite système complet pour générer un plan de développement d'application web détaillé, couvrant la réactivité, les performances, les systèmes de conception, les meilleures pratiques UX/UI et l'architecture technique.

Contenu du PromptEnregistrer

🌐
**Résumé exécutif** – Cette stratégie de développement vise à transformer l'application web existante en une expérience hautement réactive, performante et accessible, en adoptant une approche mobile-first. Le plan se concentre sur l'optimisation des Core Web Vitals, la création d'un système de design basé sur des tokens, et l'amélioration de l'UX/UI pour les utilisateurs mobiles. La mise en œuvre se fera en trois phases (MVP, polish, optimisation) afin de minimiser les risques et de garantir une intégration fluide avec l'architecture actuelle. --- **1. Stratégie Responsive** - **Approche** : Mobile-first, car les données utilisateur montrent que 65% du trafic provient de mobiles (320px+). Le desktop (1024px+) sera une extension naturelle. - **Breakpoints** : - `320px` (mobile small) : base, single column. - `768px` (tablette) : deux colonnes, navigation hamburger. - `1024px` (desktop) : trois colonnes, sidebar complète. - `1440px` (large) : conteneur max-width `1280px` centré, marges fluides. - **Système de layout** : CSS Grid avec `grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))` pour les cartes. Utiliser `clamp()` pour les tailles de police : `font-size: clamp(16px, 2vw, 20px)`. - **Fluid scaling** : Utiliser `dvh` pour la hauteur (ex. `height: 100dvh`), `svh` pour les barres d'outils, et `lvh` en fallback. Gérer les encoches avec `env(safe-area-inset-*)`. - **Touch & Navigation** : Cibles tactiles min `44x44px`, gestes de balayage pour les carrousels, états hover uniquement sur les appareils avec `@media (hover: hover)`. Navigation clavier complète avec focus visible (`outline: 2px solid #0066cc`). - **Images** : `srcset` avec `sizes` pour les images responsives, `loading="lazy"` pour les images hors viewport, et `art direction` via `<picture>` pour les images hero (recadrage mobile vs desktop). --- **2. Blueprint Performance** - **Cibles** : LCP < 2.5s, INP < 100ms, CLS < 0.1, animations à 60fps. - **Audit actuel** : Le LCP est actuellement à 3.2s (image hero non optimisée), INP à 150ms (listeners JS lourds), CLS à 0.15 (polices non préchargées). - **Techniques** : - **Lazy loading** : Toutes les images et iframes avec `loading="lazy"`, sauf le LCP (préchargé avec `fetchpriority="high"`). - **Code splitting** : Utiliser `React.lazy()` et `Suspense` pour les routes non critiques. Le bundle initial doit être < 170KB gzippé. - **Asset optimization** : Convertir les images en WebP/AVIF, compresser avec `sharp` (qualité 80%). Les polices en `woff2` avec `font-display: swap`. - **CSS containment** : `content-visibility: auto` sur les sections hors viewport, `contain: layout paint` sur les cartes. - **GPU compositing** : Utiliser `transform: translateZ(0)` pour les animations, éviter `top/left` (déclenche le layout). - **Offline** : Service worker existant (Workbox) - ajouter un fallback réseau avec cache-first pour les assets statiques, et un shell d'application pour les pages clés. - **Pitfalls** : Éviter le `layout thrashing` (lire/écrire le DOM en boucle), utiliser `requestAnimationFrame` pour les animations JS. --- **3. Spécification du Système de Design** - **Tokens** : - **Couleurs** : Palette neutre (gris 50-900), accent primaire `#0066cc` (bleu), secondaire `#ff6600` (orange). Mode sombre : fond `#121212`, texte `#e0e0e0`, accent `#4d9fff`. - **Spacing** : Échelle de base 8px (4, 8, 12, 16, 24, 32, 48, 64, 96). Utiliser `rem` pour l'accessibilité. - **Typographie** : Police système `Inter` (fallback `system-ui`). Échelle : `12/14/16/20/24/32/40/48`. Poids : 400 (regular), 600 (semibold), 700 (bold). - **Elevation** : Ombres à 3 niveaux - `shadow-sm` (0 1px 2px rgba(0,0,0,0.05)), `shadow-md` (0 4px 6px rgba(0,0,0,0.1)), `shadow-lg` (0 10px 15px rgba(0,0,0,0.2)). - **Motion** : Durées - 150ms (hover), 300ms (modals), 400ms ease-out (page transitions). Respecter `prefers-reduced-motion` (désactiver les animations). - **Iconographie** : Utiliser un set d'icônes linéaires (stroke 1.5px) pour la cohérence, format SVG inline. Style d'illustration : plat, avec dégradés subtils. - **Règles de composants** : Les composants legacy (ex. boutons avec ombres fortes) seront migrés vers les nouveaux tokens. Border radius : `4px` (petits), `8px` (moyens), `12px` (grands). Les cartes utilisent `8px` avec `shadow-sm`. --- **4. Plan de la Bibliothèque de Patterns UX/UI** - **Hiérarchie & Scannabilité** : Titres avec poids 700, sous-titres 600, corps 400. Espacement vertical `24px` entre les sections. Utiliser des listes à puces pour les données clés. - **Feedback & Affordance** : Skeleton screens (gris animé avec `opacity` 0.5-1) pour les chargements. Micro-interactions : boutons avec `scale(0.98)` au clic, liens avec soulignement animé. - **Navigation** : Hamburger (mobile) avec overlay, bottom nav (mobile) pour les 4 actions principales, sidebar (desktop) avec breadcrumbs (`Accueil > Produits > Détail`). Wayfinding : indicateur de section active. - **Accessibilité (WCAG 2.1 AA)** : - Contraste : texte sur fond clair ≥ 4.5:1, texte large ≥ 3:1. Vérifier avec `axe-core`. - ARIA : `role="navigation"` pour les menus, `aria-label` sur les icônes, `aria-live` pour les messages d'erreur. - Focus : `:focus-visible` avec outline `2px solid #0066cc`. - **Formulaires** : Inline errors avec `aria-describedby`, `inputmode="numeric"` pour les numéros, `type="email"` pour les emails. Validation en temps réel (debounce 300ms). - **Motion Design** : Animations d'entrée (fade + translateY 20px) pour les cartes, avec délai stagger (50ms). Désactiver si `prefers-reduced-motion`. - **Empty States** : Illustration + message clair + CTA (ex. "Aucun résultat - Essayez de modifier vos filtres"). Gérer les erreurs avec un composant `ErrorBoundary` et un bouton "Réessayer". --- **5. Architecture Technique** - **Stack** : React 18 (existant) + TypeScript (migration progressive). Ajouter `Next.js` si le SSR est nécessaire pour le SEO, sinon rester en SPA. - **Structure** : - `src/components/` (dossier par composant avec `index.tsx`, `styles.ts`, `types.ts`) - `src/hooks/` (custom hooks pour responsive, media queries) - `src/tokens/` (design tokens en JSON/TS) - `src/utils/` (helpers pour breakpoints, performance) - **Theming** : CSS custom properties (`:root` pour light, `[data-theme="dark"]` pour dark). Utiliser `styled-components` ou `CSS Modules` - recommandation : **CSS Modules** pour la simplicité et le SSR. - **CSS Strategy** : Utility-first avec `Tailwind` (si adoption rapide) ou CSS Modules avec variables. Recommandation : **Tailwind** pour la rapidité de développement, avec config personnalisée pour les tokens. - **Testing** : Utiliser `Playwright` pour les tests e2e responsives. Tester les breakpoints : 320, 375, 768, 1024, 1440. Devices : iPhone SE, iPhone 12, iPad, Desktop Chrome. Intégrer `Lighthouse CI` pour les métriques. --- **6. Plan de Déploiement Phasé** - **Phase 1 (MVP - Semaines 1-2)** : - Implémenter les breakpoints et le layout fluide. - Migrer les couleurs et typographies vers les tokens. - Corriger les problèmes de CLS (préchargement des polices). - Ajouter le lazy loading pour les images. - **Phase 2 (Polish - Semaines 3-4)** : - Améliorer la navigation (hamburger, bottom nav). - Ajouter les skeleton screens et micro-interactions. - Implémenter le mode sombre. - Mettre à jour les formulaires avec validation inline. - **Phase 3 (Optimisation - Semaines 5-6)** : - Optimiser le bundle (code splitting, tree shaking). - Améliorer l'INP (réduire les listeners, utiliser `passive: true`). - Tester l'accessibilité complète (axe-core, tests clavier). - Lancer Lighthouse CI et corriger les scores. --- **7. Checklist Qualité (Pré-lancement)** - [ ] Testé sur 320px, 768px, 1024px, 1440px (Chrome, Safari, Firefox). - [ ] LCP < 2.5s, INP < 100ms, CLS < 0.1 (vérifié via Lighthouse). - [ ] Toutes les images ont `srcset` et `loading="lazy"`. - [ ] Navigation clavier fonctionnelle (Tab, Enter, Escape). - [ ] Contraste des couleurs ≥ 4.5:1 (vérifié avec axe-core). - [ ] Mode sombre activé et cohérent. - [ ] Formulaires avec erreurs inline et `aria-describedby`. - [ ] Animations désactivées avec `prefers-reduced-motion`. - [ ] Service worker fonctionne en mode offline (testé avec DevTools). - [ ] Aucun débordement horizontal (testé avec `overflow-x: hidden` en fallback). - [ ] Touch targets ≥ 44px sur mobile. - [ ] Testé sur iPhone SE, iPhone 12, iPad, Desktop (via Playwright).

Connectez-vous pour voir le prompt complet

Continuer avec:

En vous connectant, vous acceptez nos Conditions et Confidentialité

Utilisation

Ce prompt est conçu pour être utilisé avec coding. Copiez le contenu ci-dessus et collez-le dans votre outil d’IA préféré.

Pour de meilleurs résultats, personnalisez les espaces réservés (indiqués par des crochets ou des majuscules) selon vos besoins.

Références

Catégories :coding| prompts.chat| full-stack-engineer| ux-ui-architect

Discussion