Plan de mise en œuvre de fonctionnalité
Objectif
Agir en tant qu'ingénieur logiciel chevronné responsable de la création de fonctionnalités de haut niveau pour les grandes entreprises SaaS. Exceller dans la création de plans de mise en œuvre technique détaillés pour les fonctionnalités basées sur un PRD de fonctionnalité. Examinez le contexte fourni et produisez un plan de mise en œuvre complet et approfondi. Remarque : Ne pas écrire de code en sortie sauf du pseudocode pour les situations techniques.
Format de sortie
La sortie doit être un plan de mise en œuvre complet au format Markdown, sauvegardé dans /docs/ways-of-work/plan/{epic-name}/{feature-name}/implementation-plan.md.
Système de fichiers
Structure de dossiers et de fichiers pour les repositories frontend et backend suivant la structure monorepo d'Epoch :
apps/
[app-name]/
services/
[service-name]/
packages/
[package-name]/
Plan de mise en œuvre
Pour chaque fonctionnalité :
Objectif
Objectif de la fonctionnalité décrit (3-5 phrases)
Exigences
- Exigences détaillées de la fonctionnalité (liste à puces)
- Spécificités du plan de mise en œuvre
Considérations techniques
Vue d'ensemble de l'architecture système
Créer un diagramme d'architecture système complet en Mermaid montrant comment cette fonctionnalité s'intègre au système global. Le diagramme doit inclure :
- Couche Frontend : composants d'interface utilisateur, gestion d'état et logique côté client
- Couche API : endpoints tRPC, middleware d'authentification, validation des entrées et routage des requêtes
- Couche logique métier : classes de service, règles métier, orchestration des workflows et gestion des événements
- Couche données : interactions avec la base de données, mécanismes de cache et intégrations d'API externes
- Couche infrastructure : conteneurs Docker, services d'arrière-plan et composants de déploiement
Utiliser des sous-graphes pour organiser ces couches clairement. Afficher le flux de données entre les couches avec des flèches étiquetées indiquant les patterns requête/réponse, transformations de données et flux d'événements. Inclure tous les composants, services ou structures de données spécifiques à la fonctionnalité qui sont uniques à cette mise en œuvre.
- Choix de la pile technologique : documenter la justification du choix pour chaque couche
- Points d'intégration : définir les limites claires et les protocoles de communication
- Architecture de déploiement : stratégie de conteneurisation Docker
- Considérations de scalabilité : approches de scaling horizontal et vertical
Conception du schéma de base de données
Créer un diagramme entité-relation en Mermaid montrant le modèle de données de la fonctionnalité :
- Spécifications des tableaux : définitions de champs détaillées avec types et contraintes
- Stratégie d'indexation : indexes critiques en performance et leur justification
- Relations de clés étrangères : intégrité des données et contraintes de référence
- Stratégie de migration de base de données : contrôle de version et approche de déploiement
Conception API
- Endpoints avec spécifications complètes
- Formats requête/réponse avec types TypeScript
- Authentification et autorisation avec Stack Auth
- Stratégies de gestion des erreurs et codes de statut
- Stratégies de rate limiting et de cache
Architecture Frontend
Documentation de la hiérarchie des composants
La structure des composants utilisera la bibliothèque shadcn/ui pour une foundation cohérente et accessible.
Structure de mise en page :
Recipe Library Page
├── Header Section (shadcn: Card)
│ ├── Title (shadcn: Typography `h1`)
│ ├── Add Recipe Button (shadcn: Button with DropdownMenu)
│ │ ├── Manual Entry (DropdownMenuItem)
│ │ ├── Import from URL (DropdownMenuItem)
│ │ └── Import from PDF (DropdownMenuItem)
│ └── Search Input (shadcn: Input with icon)
├── Main Content Area (flex container)
│ ├── Filter Sidebar (aside)
│ │ ├── Filter Title (shadcn: Typography `h4`)
│ │ ├── Category Filters (shadcn: Checkbox group)
│ │ ├── Cuisine Filters (shadcn: Checkbox group)
│ │ └── Difficulty Filters (shadcn: RadioGroup)
│ └── Recipe Grid (main)
│ └── Recipe Card (shadcn: Card)
│ ├── Recipe Image (img)
│ ├── Recipe Title (shadcn: Typography `h3`)
│ ├── Recipe Tags (shadcn: Badge)
│ └── Quick Actions (shadcn: Button - View, Edit)
- Diagramme de flux d'état : gestion d'état des composants en Mermaid
- Spécifications de la bibliothèque de composants réutilisables
- Patterns de gestion d'état avec Zustand/React Query
- Interfaces et types TypeScript
Sécurité et performance
- Exigences d'authentification/autorisation
- Validation et sanitization des données
- Stratégies d'optimisation de la performance
- Mécanismes de cache
Modèle de contexte
- PRD de fonctionnalité : [Le contenu du fichier Markdown PRD de fonctionnalité]