mirror of
https://github.com/MaksTinyWorkshop/_Assistant_Lead_Tech
synced 2026-04-06 13:31:43 +02:00
4.4 KiB
4.4 KiB
Product — Patterns validés : Général
Extrait de la base de connaissance Lead_tech. Voir
knowledge/product/patterns/README.mdpour l'index complet.
Pattern : Epic UI Fondation — prérequis bloquant avant Epic 1
- Objectif : éviter les régressions et la dette de migration générées par l'insertion tardive d'un epic de fondation UI.
- Contexte : app mobile ou SPA avec un design system à créer (design tokens + composants primitifs).
- Quand l'utiliser : dès qu'un epic design tokens / composants de base existe dans la roadmap.
- Quand l'éviter : si le design ad-hoc est un choix délibéré assumé (prototype jetable, MVP ultra-contraint).
- Avantage :
- les screens livrés ultérieurement utilisent d'emblée les bons tokens et composants
- pas de double système d'espacement ni de migration de composants partagés en cours de route
- les composants primitifs (Button, FilterChip...) sont stables avant d'être utilisés partout
- Limites / vigilance :
- si l'insertion tardive est inévitable, prévoir une story de smoke test explicite sur tous les parcours critiques refactorisés
- Validé le : 19-03-2026
- Contexte produit : App mobile / early stage — app-alexandrie rétrospective Epic 0
Description
Un Epic "UI Fondation" inséré après Epic 1 (ou plus tard) génère trois risques spécifiques :
- Régression sur screens livrés : les fichiers refactorisés avaient déjà une logique métier validée — toute modification structurelle rouvre un risque de régression.
- Composants partagés modifiés : migrer
Button,FilterChipdeTouchableOpacityversPressableaprès utilisation partout est un breaking change API silencieux. - Double système de tokens : les screens livrés avaient adopté les anciennes constantes — la migration est une dette qui s'accumule à chaque epic.
Règle : L'Epic UI Fondation (tokens + composants primitifs) est un prérequis bloquant de Epic 1. Il doit être fait en tout premier, avant toute logique métier — ou ne pas être fait du tout (accepter le design ad-hoc).
Checklist (insertion tardive inévitable)
- Story de smoke test explicite sur tous les parcours critiques touchés
- Grep systématique des usages des composants modifiés avant merge
- Vérification que l'ancien système de tokens est entièrement purgé (
grep from '@/constants/theme')
Pattern : Progression V1 sans module dédié — calcul depuis la source de vérité
- Objectif : exposer une feature de progression/gamification sans créer prématurément un domaine
achievementsouanalytics. - Contexte : produit early-stage avec une source de vérité existante (
content,billing,posts...) et un besoin de progression MVP. - Quand l'utiliser : première itération d'une feature de progression, objectifs, stats utilisateur.
- Quand l'éviter : si les compteurs sont déjà complexes, multi-sources ou nécessitent une persistance d'état (ex : streaks, badges conditionnels).
- Avantage :
- zéro scope creep — pas de tables
achievementsni de service dédié en avance de phase - logique explicite et testable en code, pas en DB
- couture propre vers un module
achievementsréel si le besoin se confirme
- zéro scope creep — pas de tables
- Limites / vigilance :
- ne convient pas si les calculs de période sont coûteux à chaque appel — à surveiller sur le volume
- la couture vers les sources futures doit être prévue dès le départ (pas de calcul hardcodé sur une seule table)
- Validé le : 10-03-2026
- Contexte produit : App mobile / early stage — app-alexandrie
Description
Plutôt que d'ouvrir un domaine achievements ou analytics dès la V1 :
- Garder l'agrégat dans le domaine métier source de vérité (
content,billing, etc.) - Calculer les compteurs de période (
thisWeek,thisMonth) directement en base viacount/ agrégations filtrées - Centraliser le catalogue d'objectifs en code — explicite, versionné, testable
- Prévoir des coutures zéro-safe pour les sources futures (
contributions,posts...) sans inventer les tables en avance
Checklist
- Aucune table
achievements/progresscréée sans besoin confirmé - Compteurs calculés depuis la source de vérité existante
- Catalogue d'objectifs en code (pas en DB)
- Interface de sortie stable même si les sources de données évoluent