Files
_Assistant_Lead_Tech/knowledge/product/patterns/general.md
MaksTinyWorkshop 9b7af9f1b0 Refonte Structure
2026-03-25 08:34:19 +01:00

4.4 KiB

Product — Patterns validés : Général

Extrait de la base de connaissance Lead_tech. Voir knowledge/product/patterns/README.md pour 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 :

  1. 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.
  2. Composants partagés modifiés : migrer Button, FilterChip de TouchableOpacity vers Pressable après utilisation partout est un breaking change API silencieux.
  3. 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 achievements ou analytics.
  • 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 achievements ni de service dédié en avance de phase
    • logique explicite et testable en code, pas en DB
    • couture propre vers un module achievements réel si le besoin se confirme
  • 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 :

  1. Garder l'agrégat dans le domaine métier source de vérité (content, billing, etc.)
  2. Calculer les compteurs de période (thisWeek, thisMonth) directement en base via count / agrégations filtrées
  3. Centraliser le catalogue d'objectifs en code — explicite, versionné, testable
  4. Prévoir des coutures zéro-safe pour les sources futures (contributions, posts...) sans inventer les tables en avance

Checklist

  • Aucune table achievements / progress créé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